Compartilhar via


Abordar a complexidade de negócios em um microsserviço com padrões DDD e CQRS

Dica

Esse conteúdo é um trecho do eBook, arquitetura de microsserviços do .NET para aplicativos .NET em contêineres, disponível em do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

miniatura da capa do eBook sobre arquitetura de microsserviços do .NET para aplicativos .NET em contêineres.

Crie um modelo de domínio para cada microsserviço ou Contexto Limitado que reflita a compreensão do domínio de negócios.

Esta seção se concentra em microsserviços mais avançados que você implementa quando precisa lidar com subsistemas complexos ou microsserviços derivados do conhecimento de especialistas em domínio com regras de negócios em constante mudança. Os padrões de arquitetura usados nesta seção baseiam-se nas abordagens DDD (design controlado pelo domínio) e CQRS (Segregação de Responsabilidade de Comando e Consulta), conforme ilustrado na Figura 7-1.

Diagrama comparando padrões de arquitetura externa e interna.

Diferença entre arquitetura externa: padrões de microsserviço, gateways de API, comunicação resilientes, pub/sub etc. e a arquitetura interna: controlado por dados/CRUD, padrões de DDD, injeção de dependência, várias bibliotecas etc.

Figura 7-1. Arquitetura de microsserviço externo versus padrões de arquitetura interna para cada microsserviço

No entanto, a maioria das técnicas para microsserviços controlados por dados, como implementar um serviço de API Web ASP.NET Core ou como expor metadados do Swagger com Swashbuckle ou NSwag, também são aplicáveis aos microsserviços mais avançados implementados internamente com padrões DDD. Esta seção é uma extensão das seções anteriores, pois a maioria das práticas explicadas anteriormente também se aplicam aqui ou a qualquer tipo de microsserviço.

Esta seção primeiro fornece detalhes sobre os padrões CQRS simplificados usados no aplicativo de referência eShopOnContainers. Posteriormente, você obterá uma visão geral das técnicas de DDD que permitem encontrar padrões comuns que podem ser reutilizados em seus aplicativos.

DDD é um tópico grande com um conjunto avançado de recursos para aprendizado. Você pode começar com livros como Domain-Driven Design de Eric Evans e materiais adicionais de Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard e muitos outros especialistas em DDD/CQRS. Mas, sobretudo, você precisa tentar aprender como aplicar as técnicas de DDD das sessões de conversa, de quadro de comunicações e de modelagem com os especialistas em seu domínio de negócio concreto.

Recursos adicionais

DDD ( designDomain-Driven)
Guias sobre DDD
Treinamento em DDD