A simple path to scale to millions of users

Nelson Parente
6 min readMar 6, 2022
Photo by Alexander Schimmeck on Unsplash

Hi there guys!

In this article, we will talk about system design, as software engineers we are continually producing code that is integrated into large software ecosystems that provide unlimited functionalities to the world. We have a tendency to think big and want to do everything perfectly on the first try, but that isn’t always the best approach when designing software systems.

One of the key principles in software engineering is the ability to iterate over things, we should start small and increase the complexity and functionality of our systems throughout multiple iterations.

Let’s start with a very simple software system and see how we can improve its design and make it able to handle millions of users.

Not fancy, right?

Here we have two entry points, via web or mobile app, one single server responding to the requests and storing data on a single database.

The main problem with this design is that it doesn’t scale, if we have a huge increase in traffic our single server will reach its resource limits and won’t be able to handle the incoming requests. So we need to scale…