A pattern is a way to design an optimized structure for microservices. There are many ways we can design and build microservices. Here is a list of key design patterns used for decomposition, integration, data management, observability, and other misc. cross cutting concerns.
Decomposition
Decomposition strategies play a crucial role in determining how well it can scale and perform properly under higher workloads. As a rule, we do not want to decompose large monolithic applications and create another distributed monolithic system with its own set of issues and challenges.
- Decompose by business capabilities
- Decompose by subdomains
- Decompose by transactions
- Decompose by service per team
- Bulkhead
- Sidecar
- Strangler
Integration
This is essentially the idea of adding more services or structuring an application so that the services are able to communicate with each other and with the client in a very efficient manner.