Gone are the times when developers mainly designed simple applications that could be run in a single environment. Nowadays, we have a plethora of environments and hardware configurations. Our applications process lots of data and serve many customers, often with different needs. This has resulted in a need to create big applications. Software architects have explored ways to create such applications. They have used what we call multitier architecture[1], where there's a clear separation between data management, application processing, and presentation.
Applications that are created using one technology stack and are packaged together as one are called monolithic. We can contrast them with microservices architectures[2], where we structure our application as a collection of loosely coupled services. Each service is responsible for one task...