SlideShare uma empresa Scribd logo
Como DDD e principalmente
Domain Model
contribuem na construção de
microservices.
Isaac Felisberto de Souza
Engenheiro de Software
JOGO RÁPIDO!
RESPONDA APENAS
SE FOR
SIM
➔ Quem conhece DDD?
➔ Quem utiliza microservices?
➔ Quem aplica DDD em microservices?
ROTEIRO
DE HOJE!
1 VISÃO GERAL SOBRE DDD.
2 FALHAS COMUNS NO USO DE DDD.
3 APLICANDO DDD EM MICROSERVICES!
VISÃO GERAL SOBRE DDD
➔ Eric Evans
➔ Publicado em 2004.
➔ Possui 450+ páginas.
Organização por
Camadas
➔ User Interface: Apresentar e
interpretar comandos do
usuário ou outro sistema.
➔ Application: Funções que são
executadas pelo Software.
➔ Domain: Regras de negócio.
➔ Infrastructure: Recursos
técnicos genéricos
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia Designed by pch.vector / Freepik
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia
➔ Qual o domínio do negócio?
➔ Quais contextos e entidades?
Eric Evans diz que:
“O coração do software está na sua capacidade de
resolver problemas relacionados ao domínio…”
“... É preciso afiar sua capacidade de modelagem e
dominar o design de domínios.”
(entidades não são as tabelas de um banco de dados)
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia
Quem?
➔ Profissionais na gestão e negócio.
➔ Designers.
➔ Desenvolvedores(as).
➔ Times de Operação.
➔ Time de Suporte.
O uso de uma linguagem universal.
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia
martinfowler.com
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia
A porta do banco travou.
Qual o significado da palavra Banco?
Chegando na praça, sente
no banco e aguarde
Estou esperando em frente ao banco da praça.
Agência ou Instituição
Bancária
Domain Model
Ubiquitous Language
+
Bounded Context
+
Polissemia
FALHAS COMUNS NO USO DE DDD
EM MONÓLITOS
Normalmente focam
apenas nas camadas!
➔ Regra de negócio não está apenas em Domain.
➔ Domain não organizados por contextos.
➔ Pouca clareza sobre conceitos do domínio.
➔ Múltiplos termos/palavras para coisas iguais.
EM
MICROSERVICES
Microservices
abandonam a
organização de
camadas.
➔ Não há visão de contextos.
➔ Cada microservice utiliza suas nomenclaturas.
➔ Não há clareza sobre dependências.
➔ Frontend acessa direto todos microservices.
➔ Inconsistências nos Contratos de API’s.
APLICANDO DDD EM MICROSERVICES
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia
“O coração do software…”
A solução deve possuir um modelo de domínio!
Uma solução fictícia, chamada Guia Hóspede,
o domínio é: RESERVA DE HOTÉIS.
Modelo de domínio do Guia Hóspede
QUAL O TAMANHO
DE UM MICROSERVICE?
➔ As entidades determinam os
contratos das API’s.
➔ O modelo indica as dependências.
➔ Contextos indicam a fragmentação
inicial de microservices.
Domain Model
➔ Entidades fracas não precisam ser isoladas em um microservice.
⚠ Cuidado com excesso de fragmentação. ⚠
➔ Um microservice para esse contexto é aceitável.
Domain Model
➔ Hotel é a entidade forte, terá um microservice.
➔ Acomodação também é uma entidade forte.
Acomodação...
➔ Inicia no microservice
de hotéis.
➔ Quando precisar de
escala, será segregada.
Domain Model
➔ Hóspede parece uma entidade forte, mas...
➔ O contexto foca na estadia, um microservice para o contexto é aceitável.
Domain Model
➔ Mais importante que o tamanho do microservice, é o contexto.
➔ As dependências entre microservices seguem o modelo de domínio.
➔ O modelo ajuda a compreender possíveis evoluções.
➔ Os microservices explicitam melhor o domínio de negócio.
hoteis-service stays-service
accounts-service
accommodations-service
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia
Todos utilizam uma linguagem universal!
O nome de contextos, entidades e atributos é utilizada em:
➔ Nome dos microservices e Contrato das API’s.
➔ Modelagem da persistência de dados.
➔ Artefatos distribuídos.
➔ Endereço dos Endpoints.
➔ Mapeamentos de monitoramento.
➔ No diálogo entre integrantes do projeto/empresa.
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia
Microservices respeitam os limites de cada contexto!
➔ Informação adequada
ao o contexto.
➔ Dependência fraca
entre entidades.
➔ Conta é uma entidade genérica. (Hotéis e usuários).
➔ Dados específicos para conta de hotéis no contexto de hotéis.
➔ A chave entre entidades é um UUID, ou “strings humanizadas”.
Domain Model
Ubiquitous
Language
Bounded
Context
Polissemia
Nomenclaturas não geram dúvidas!
➔ Conta, é a representação genérica.
➔ Conta de Parceiros, dados adicionais de contas de hotéis.
➔ Reserva, é Reserva de Estadias.
CAMADAS DO DDD
NO CONJUNTO DE
MICROSERVICES
➔ Adoção de API Gateway.
➔ Frontend ou sistemas externos acessam
o API Gateway.
➔ API’s mapeadas no gateway respeitam o
modelo de domínio.
➔ O API Gateway -> Application Layer
Representação da
Application Layer
➔ Agrupados por domínio/contexto.
➔ Uso de um Core Domain.
Os microservices
representam a
Domain Layer
Arquitetura
Orientada a Eventos
possibilita uso de
DOMAIN EVENTS
➔ Schemas seguem o modelo de domínio.
➔ Nomenclatura de filas seguem as entidades.
➔ Agrupamentos lógicos seguem os contextos.
Como DDD e principalmente Domain Model contribuem na construção de microservices.
Domain Model
Ubiquitous Language
Bounded Context
Polissemia
Organizados com:
Application
Domains
MICROSERVICES ORGANIZADOS,
COM MENOR ACOPLAMENTO, MAIOR COESÃO
E FOCADOS NO NEGÓCIO.
OBRIGADO!
Isaac Felisberto de Souza
Engenheiro de Software
isaacsouza@gmail.com
linkedin.com/in/isaacfsouza
Um guia para auxiliar o
Desenvolvimento de Software.
Através de conteúdo para desenvolvedores(as).
www.guia.dev
Guia Dev (linkedin.com/company/guiadev)
@guia_dev
Siga! e compartilhe ;-)

Mais conteúdo relacionado

PDF
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
PDF
Api Gateway
PPTX
Introduction to microservices
PPTX
FIWARE: Managing Context Information at large scale
PPTX
Cinema booking system | Movie Booking System
PPTX
Azure Cloud Adoption Framework + Governance - Sana Khan and Jay Kumar
PPTX
Cloud computing by Google Cloud Platform - Presentation
PDF
Common Patterns of Multi Data-Center Architectures with Apache Kafka
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Api Gateway
Introduction to microservices
FIWARE: Managing Context Information at large scale
Cinema booking system | Movie Booking System
Azure Cloud Adoption Framework + Governance - Sana Khan and Jay Kumar
Cloud computing by Google Cloud Platform - Presentation
Common Patterns of Multi Data-Center Architectures with Apache Kafka

Mais procurados (20)

PPTX
Azure Bicep for Developers
PPTX
An Introduction to Confluent Cloud: Apache Kafka as a Service
PPTX
Apache tomcat
PPTX
Springboot Microservices
PPTX
Interop 2018 - Understanding Kubernetes - Brian Gracely
PDF
Helm - Application deployment management for Kubernetes
PDF
Cloud run - Serverless Containers Done Right
PDF
TechnicalTerraformLandingZones121120229238.pdf
PDF
Microservices with Java, Spring Boot and Spring Cloud
PPTX
Microservice Architecture Software Architecture Microservice Design Pattern
PDF
Understanding MicroSERVICE Architecture with Java & Spring Boot
PPTX
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
PDF
API Management within a Microservice Architecture
PPTX
Domain Driven Design - Strategic Patterns and Microservices
PPTX
Kubernetes
PPTX
Microsoft azure
PPSX
Microservices Architecture - Cloud Native Apps
PPTX
Leveraging Ignition Quick Start to Rapidly Build Real Projects
PDF
Terraform
PDF
Intro - Cloud Native
Azure Bicep for Developers
An Introduction to Confluent Cloud: Apache Kafka as a Service
Apache tomcat
Springboot Microservices
Interop 2018 - Understanding Kubernetes - Brian Gracely
Helm - Application deployment management for Kubernetes
Cloud run - Serverless Containers Done Right
TechnicalTerraformLandingZones121120229238.pdf
Microservices with Java, Spring Boot and Spring Cloud
Microservice Architecture Software Architecture Microservice Design Pattern
Understanding MicroSERVICE Architecture with Java & Spring Boot
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
API Management within a Microservice Architecture
Domain Driven Design - Strategic Patterns and Microservices
Kubernetes
Microsoft azure
Microservices Architecture - Cloud Native Apps
Leveraging Ignition Quick Start to Rapidly Build Real Projects
Terraform
Intro - Cloud Native
Anúncio

Semelhante a Como DDD e principalmente Domain Model contribuem na construção de microservices. (20)

PDF
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
PDF
A importância de DDD e o Domain Model na construção de APIs!
PPTX
TDC - Qual o tamanho adequado de um micro serviço?
PDF
Um método para o desenvolvimento de software baseado em microsserviços
PPTX
Domain Driven Design
PDF
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
PDF
Treinamento DDD .Net
PPTX
Microservices & Service Mesh Pattern presentation
PDF
Introducao a Microservices
PDF
O desafio de sustentar centenas de servicos
PDF
Domain-Driven-Design
PDF
Domain-Driven-Design
PDF
Domain Driven Design com Python
PPTX
Microservices - ALM Roadshow 2015
PPTX
Microservices
PDF
DDD - Domain Driven Design
PDF
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
PDF
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
PPTX
Microservices - Canal .NET Dev Weekend
PDF
Projeto Integrador Transdisciplinar em Banco de Dados II.pdf
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
A importância de DDD e o Domain Model na construção de APIs!
TDC - Qual o tamanho adequado de um micro serviço?
Um método para o desenvolvimento de software baseado em microsserviços
Domain Driven Design
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
Treinamento DDD .Net
Microservices & Service Mesh Pattern presentation
Introducao a Microservices
O desafio de sustentar centenas de servicos
Domain-Driven-Design
Domain-Driven-Design
Domain Driven Design com Python
Microservices - ALM Roadshow 2015
Microservices
DDD - Domain Driven Design
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
Microservices - Canal .NET Dev Weekend
Projeto Integrador Transdisciplinar em Banco de Dados II.pdf
Anúncio

Mais de Isaac de Souza (12)

PDF
Sua solução escala? Testes de Stress e APMs podem responder.
PDF
Seu código fonte é sustentável?
PDF
Compondo uma plataforma de software com microservices.
PDF
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
PDF
Compondo uma plataforma de software
PDF
Desenhando a arquitetura do software!
PDF
Microservices em Python. Como estamos construindo a maior plataforma Agro do ...
PDF
A multiplicação dos devs!
PDF
Estamos trabalhando melhor com dependências e ambientes usando containers?
PDF
É hora de pensar em soluções portáveis na cloud!
PDF
Cloud computing, quais vantagens reais?
PDF
Maior performance no seu sistema com o uso adequado de orm em rails
Sua solução escala? Testes de Stress e APMs podem responder.
Seu código fonte é sustentável?
Compondo uma plataforma de software com microservices.
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
Compondo uma plataforma de software
Desenhando a arquitetura do software!
Microservices em Python. Como estamos construindo a maior plataforma Agro do ...
A multiplicação dos devs!
Estamos trabalhando melhor com dependências e ambientes usando containers?
É hora de pensar em soluções portáveis na cloud!
Cloud computing, quais vantagens reais?
Maior performance no seu sistema com o uso adequado de orm em rails

Último (19)

PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Processos na gestão de transportes, TM100 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Apple Pippin Uma breve introdução. - David Glotz
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula 18 - Manipulacao De Arquivos python
Custos e liquidação no SAP Transportation Management, TM130 Col18
COBITxITIL-Entenda as diferença em uso governança TI
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula04-Academia Heri- Tecnologia Geral 2025
Processos na gestão de transportes, TM100 Col18

Como DDD e principalmente Domain Model contribuem na construção de microservices.