Hello, I am building a social network and I plan to migrate it into a decentralized application eventually but I want to make sure that the technologies are mature enough to handle a wide variety of traffic, I like to plan for the most intense situations so that I can be sure my entire stack can scale properly. So with that being said, what would be an estimated performance evaluation for IPFS? Should I wait a bit and begin to redesign parts of the network off-site until IPFS becomes more mature? Or is it performant enough to use in an evolving production environment?
P.S. I would likely end up using mostly the ipfs-js library and maybe a tad bit of the golang library.
This is strictly my personal opinion as somebody trying to build an application on IPFS
I would not worry so much about performance but about maturity. For a social network that is purely built on IPFS you will definitely need IPFS (the content-addressed storage and distribution), IPNS and pubsub. Of these three components the only one that does not feel experimental is the CAS and distribution of data for hashes. pubsub is implemented using a preliminary implementation called floodsub that as far as I know won’t scale to a large social network, and IPNS has some performance issues as well. Plans to improve IPNS involve pubsub, which is experimental.
I would also be very interested in when we can expect a mature implementation of pubsub and IPNS…
Another thing, I don’t know if this is the best place to ask for this but with a decentralized social network architecture I would still like to be able to mould and shape the Network as I have plans for it that will take some time, would it be difficult to be at the forefront of that if the architecture is primarily decentralized? That’s probably the only thing I’m lacking on with understanding decentralized architectures
In a distributed application there is no “backend” that is hidden from the user and can not be copied. So if you write an application such as a social network and publish it via IPNS, people would be able to “clone” it. You would still be in control of the original application, since you would have the private key allowing to publish to the name under which the application code is published.
Honestly, I would not worry about people cloning your app. There is a powerful network effect for things like social networks, so if you find and occupy an unique niche and are not too obnoxious to your users, a clone would not be successful.