Architecting your application to handle massive amounts of traffic
In the life time of an application, you sometimes get to a point where using a simple design architecture like the one we built isn't enough. As traffic keeps on increasing and you start seeing millions of users, you may need to start looking into changing parts of your architecture to make it more efficient. Ideally, you want to analyze your application and figure out which parts are hard to scale or hard develop against and carve off those pieces off of your monolith and create dedicated services. This is commonly called adopting a service oriented architecture. This is, of course, a very complex and disruptive exercise, but the benefits offset those inconveniences.
From an architecture/operations standpoint, breaking out services as such will allow for:
- Better reusability of the service as other applications will now be able to use that service
- Better reliability as the service will as standalone service and therefore won...