Microsserviços
Serviços independentes organizados por domínio, responsáveis pela lógica de negócio, pela persistência e pelos eventos principais do sistema.
O que é um microsserviço nesta arquitetura?
Um microsserviço é uma unidade funcional responsável por um domínio ou bounded context específico.
Por exemplo:
- usuários
- produtos
- pedidos
- pagamentos
- estoque
- notificações
Cada serviço deve ter um propósito claro e limites compreensíveis.
O que vive dentro de um microsserviço
API Layer
Expõe endpoints ou interfaces de entrada.
Application Layer
Orquestra casos de uso.
Domain Layer
Contém regras, entidades, value objects e a lógica principal do domínio.
Infrastructure Layer
Conecta com bancos de dados, filas, clientes externos e detalhes técnicos.
Responsabilidades principais
- Implementar regras de negócio
- Validar invariantes do domínio
- Persistir dados
- Publicar eventos relevantes
- Manter contratos claros
Banco de dados por serviço
Uma prática comum é que cada microsserviço tenha controle sobre a sua própria persistência.
Isso ajuda a:
- reduzir acoplamento
- proteger o domínio
- evitar dependência direta entre serviços
Compartilhar um mesmo banco de dados entre muitos serviços costuma levar a acoplamentos difíceis de governar.
Benefícios
- Limites mais claros por domínio
- Deploys independentes
- Evolução desacoplada
- Ownership de equipe mais definido
Riscos
- Serviços pequenos demais sem uma razão clara
- Comunicação síncrona excessiva entre serviços
- Contratos pouco definidos
- Consistência distribuída mal resolvida
- Governança fraca
Como eles se conectam?
Os microsserviços podem se conectar:
- de forma síncrona, por meio de APIs
- de forma assíncrona, por meio de eventos
Em geral:
- usar sincronia quando se precisa de resposta imediata
- usar assincronia quando se busca desacoplamento temporal
Exemplo prático
ms-orders pode:
- receber uma solicitação de criação de pedido
- validar regras do domínio
- persistir o pedido
- publicar
OrderPlaced
Em seguida, outros serviços reagem a esse evento de acordo com a sua responsabilidade.
Resumo
Os microsserviços são o núcleo funcional da arquitetura. O valor deles está em separar o domínio em limites claros, não em fragmentar o sistema arbitrariamente.