An entrepreneur was recently telling me how he was worried that his B2B web app might not scale if things took off. Of course, I explained to him that that would be a high class problem to have and that he shouldn’t worry about it. Focusing on finding product/market fit and customer acquisition is much more important. With that said, I did describe a simple approach to architecting an infinitely scalable B2B web app:
- Round robin DNS to a handful of load balancers in separate data centers
- Databases with near real-time replication between data centers
- Separate databases for global information (like users, accounts) and limitless shards to hold account-specific information (multiple accounts per shard, when a shard gets too large it is split into two shards)
The benefit of most B2B web apps is that one account or user doesn’t need to know about another account, and thus the system can scale by adding more and more database shards horizontally with a global database that keeps tracks of what account is on what shard.
What else? What are your thoughts on this approach to an infinitely scalable B2B web app?
Leave a reply to Andrew Watson Cancel reply