Microservice architecture splits an application into several internal services. Each service performs a separate task and communicates with other services through remote procedure calls, typically HTTP requests. This contrasts with a monolith, where the complete program logic runs in one service or container. section 6.4.2
Splitting an application into services can provide:
- Independent scaling, so services handling different workloads can be scaled separately. section 6.4.2
- Independent development by separate teams, with the option to choose different programming languages for different services. section 6.4.2
- Dependency isolation when services run in containers, allowing different operating systems, package managers, libraries, or language environments on one host. section 1.1.1
- More difficult debugging and integration testing, because requests cross more components and require tracing. section 6.4.2
Frontend with an internal service
A frontend can serve two HTTP paths while communicating with an internal service. Alternatively, the paths can be served by separate services, making their scaling and maintenance boundaries explicit. section 6.4.2
Compare two paths served by separate services to see how service boundaries change deployment structure. section 6.4.2













