Building applications based upon a monolithic application design is something that has been done for years. The downside of a monolithic application design is that scaling is in general only possible in a vertical manner and in most cases not possible in a horizontal model. Next to this, monolithic application design, is in general less resilient against component failure. Building applications based upon a more microservice oriented architecture principle is becoming more and more common.
The below diagram shows a sample of how an application can be “broken down” into a number of different microservices who all have their own role and can run together on a single machine or can as a single microservice instance run on one or multiple machines. This allows for high performance and resillience against component failiure.