Solving Imaginary Scaling Issues (at scale)
Ben Halpern Aug 02, 2017
I am the founder and webmaster of dev.to, a platform where programmers write articles like this one, have discussions and make friends. It is a lot of fun growing the application and growing the business. On the technical side, we've tried to keep things straightforward as the app grows in complexity, but because we've purposefully built a pretty simple solution and have not encountered any serious scaling issues along the way.
The challenges that we do regularly deal with revolve around delivering the right user experience, keeping up our communication on point, and generally picking the right challenges to take on from day-to-day. Our team is up to five devs and one person who focuses mostly on the business side, though we all chip in wherever we can.
In addition to the very real issues of growing the platform and our communication structures, I really like to play around with solutions to potential future issues. I usually do this on weekends, when I don't have to justify the use of my time to anyone, not that we are very heavy handed with this to begin with. So right now, I'm exploring the idea of sharding our database and serving the core application from multiple regions across the world to cut down on the latency of database reads when requests hit the origin server. I've done the research and chosen the libraries we would likely use to make this possible, and generally thought through how we might go about implementing our solution.
But this is a solution to a problem we don't have, so we won't be implementing any of this. I knew that heading in.
This is an exercise, and a very personal one at that. Eventually we'll probably need to start thinking along these lines as a team, and I'm excited for when we do. But for now, we will keep trying to build simple solutions to problems we have and use our imaginations to come up new features and optimizations that will please our users.
At the moment, we have a pretty nice monolithic application that makes good use of our CDN, and our users appreciate the effort we've put into performance optimization. And that's about it.