We are building a video-based application like YouTube but it requires CDN for global content delivery, recently I found out about Storj and its decentralized nodes across the globe, which makes me wonder, may be we don’t need a CDN anymore if we use Storj’s Video storage and streaming solution. if anyone has any experience and knowledge please reply in the comments
Hey @im_ayushtiwari ,
Welcome to the forum! At the moment I would say it depends on the kind of simultaneous demand you expect for your application. The distributed nature of the Storj network allows for quite a bit of bandwidth, but when hundreds of people start the same video on the same second, that may start to break down.
In short every 64MB segment of a file is spread over pieces on 80 nodes of which only 29 are needed to recreate the segment. In order to get those, 39 downloads are started and as soon as the fastest 29 finish, the rest of the piece downloads are stopped. This in essence means you’re using 29 of the faster node connections in parallel. This leads to great speeds and that parallelism can be further increased by also downloading multiple segments at the same time, since every segment has its own set of 80 nodes to choose from.
But like I mentioned, if hundreds of people start a video at the same time, those requests will hit the same 80 nodes for the first segment. At least for now that is the case. Storj Labs has already thought about this feature and you can read in section 6.1 of the whitepaper how they intent to eventually solve that by being able to dynamically scale availability on demand.
That said, I think the current setup can already handle quite a bit of load and Storj offers a pretty generous free offering that should be plenty to start doing your own load testing.
A side note and I probably don’t have to tell you this: Unrelated to Storj specifically, ensure that your videos are encoded in a streaming optimized format. If they aren’t, they won’t perform well on any hosting platform.