Você está na página 1de 13

Os melhores design patterns para

microservices: uma abordagem prática

Elder Moraes
Developer Advocate
@elderjava
Arquitetura de Microservices

Estrutura uma aplicação como uma coleção de serviços que sejam:

• De fácil manutenção

• Altamente testáveis

• Implantados de forma independente

• Organizados em torno de requisitos de negócio

• Controlados por um time pequeno

2 @elderjava
Cerca de 50
patterns
catalogados

Fonte: https://microservices.io/patterns/index.html
3 @elderjava
Quais patterns eu posso
aprender hoje e já sair
usando?

4 @elderjava
bit.ly/elderyt
Developer Advocate na Red Hat

Board Member no SouJava

Autor do livro Jakarta EE Cookbook

Foco: ajudar desenvolvedores a construir e entregar

aplicações incríveis

5 @elderjava
6 Design Patterns

• Service per team

• Externalized Configuration

• Circuit Breaker

• Health Check API

• Distributed Tracing

• Application Metrics

6 @elderjava
Service per Team
(o único que não tem código)

7 @elderjava
Service per Team

Fonte: https://microservices.io/patterns/decomposition/service-per-team.html

8 @elderjava
Lei de Conway

"Any organization that designs a system… will


produce a design whose structure is a copy of the
organization's communication structure.”
- Melvin E. Conway

9 @elderjava
Service per Team

• Times se tornam mais autônomos

• Times trabalham mais desacoplados

• Favorece qualidade de código devido ao fator de longo prazo

• Times não necessariamente estão alinhados com o usuário final

• Maior complexidade com funcionalidades que dependem de outros serviços

10 @elderjava
Code Time!!!

11 @elderjava
• Externalized Configuration

• Circuit Breaker

• Health Check API

• Distributed Tracing

• Application Metrics

12 @elderjava
developers.redhat.com

13 @elderjava