Partilhar via


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

Sugestão

Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

Miniatura da capa do eBook Arquitetura de Microsserviços .NET para Aplicações .NET Contentorizadas.

Projete um modelo de domínio para cada microsserviço ou contexto delimitado 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 são baseados em abordagens de design controlado por domínio (DDD) e CQRS (Command and Query Responsibility Segregation), conforme ilustrado na Figura 7-1.

Diagrama comparando padrões de arquitetura externa e interna.

Diferença entre arquitetura externa: padrões de microsserviços, gateways de API, comunicações resilientes, pub/sub, etc., e arquitetura interna: orientada por dados/CRUD, padrões DDD, injeção de dependência, múltiplas 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 orientados por dados, como implementar um serviço de API Web ASP.NET Core ou como expor metadados 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, porque a maioria das práticas explicadas anteriormente também se aplicam aqui ou para qualquer tipo de microsserviço.

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

DDD é um grande tópico com um rico conjunto de recursos para aprendizagem. 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, acima de tudo, você precisa tentar aprender a aplicar técnicas DDD das conversas, quadros brancos e sessões de modelagem de domínio com os especialistas em seu domínio de negócios concreto.

Recursos adicionais

DDD (DesignDomain-Driven)
Livros DDD
Formação DDD