Teoria e Gestão de Domínios e Subdomínios

Índice

  1. DDD e Gestão de Subdomínios
    1. O que é DDD
    2. Conceito de Domínio
    3. Subdomínios
      1. Tipos de Subdomínios
        1. Core (Principal)
        2. Supporting (Apoio)
        3. Generic (Genérico)
    4. Lógica de Negócio
    5. Perspectiva Estratégica
    6. Build vs Buy
    7. Exemplos de Subdomínios Genéricos
    8. Exemplos de Subdomínios de Apoio
    9. Exemplo de Domínios e Subdomínios
      1. Sistema Hospitalar (Escala 1-10)
      2. 40 Subdomínios Genéricos (Escala 1-10)
      3. 40 Subdomínios de Suporte (Escala 1-10)
    10. Referências
      1. Livros
      2. Autores e influências

DDD e Gestão de Subdomínios

Uma visão prática de como Domain-Driven Design (DDD) se conecta com decisões de arquitetura e estratégia de produto.

DDD não é apenas modelagem técnica.

É uma ferramenta para:

  • priorizar investimentos
  • guiar arquitetura
  • alinhar tecnologia com negócio

O valor real está em responder: Onde devemos investir engenharia?


O que é DDD

Domain-Driven Design (DDD) é uma abordagem de desenvolvimento de software que coloca o domínio de negócio no centro das decisões técnicas.

  • Foco na resolução de problemas reais do negócio
  • Modelagem baseada em linguagem compartilhada (Ubiquitous Language)
  • Colaboração entre técnicos e especialistas do domínio

Referência principal

  • Domain-Driven Design — Eric Evans (2003)

Conceito de Domínio

Um domínio é o problema central que a empresa resolve.

Exemplos:

  • Spotify → acesso à música
  • Uber → mobilidade urbana
  • Banco → gestão financeira

Subdomínios

Um domínio é dividido em subdomínios, que representam partes menores do problema.

Eles permitem:

  • decomposição do sistema
  • priorização de investimento
  • decisões arquiteturais

Tipos de Subdomínios

Core (Principal)

  • Diferencial competitivo
  • Alta complexidade
  • Lógica única

Exemplos:

  • Motor de recomendação
  • Precificação dinâmica
  • Algoritmos proprietários

Estratégia:

  • Desenvolver internamente
  • Investir em P&D

Supporting (Apoio)

  • Suporta o Core
  • Alguma customização
  • Não gera vantagem direta

Exemplos:

  • Painel administrativo
  • Workflow interno
  • Relatórios operacionais

Estratégia:

  • Construção simplificada
  • Foco em produtividade

Generic (Genérico)

  • Problemas comuns a qualquer sistema
  • Baixa diferenciação

Exemplos:

  • Autenticação
  • Pagamentos
  • Envio de e-mail

Estratégia:

  • Comprar (SaaS)
  • Usar soluções prontas

Lógica de Negócio

A lógica de negócio define:

  • Entidades (ex: Usuário, Pedido, Sessão)
  • Regras (ex: validação, cálculo, restrições)

Ela deve estar concentrada principalmente no:

  • Core Domain

Perspectiva Estratégica

DDD moderno conecta arquitetura com estratégia:

Tipo Diferenciação Ação recomendada
Core Alta Construir
Supporting Média Customizar
Generic Baixa Comprar

Build vs Buy

Build vs Buy é o dilema estratégico de decidir entre desenvolver uma solução internamente ou adquirir um produto pronto no mercado.

  • Build (Construir): Foco em personalização total e propriedade intelectual. Exige tempo, desenvolvedores qualificados e manutenção contínua de longo prazo. Ideal para o “core business” (o diferencial da empresa).

  • Buy (Comprar/Adotar): Foco em velocidade e eficiência. Utiliza soluções prontas (SaaS, bibliotecas) para reduzir o time-to-market. Ideal para funções periféricas ou infraestrutura (como o Keycloak).

O objetivo é equilibrar custo, controle e velocidade para entregar valor ao cliente sem “reinventar a roda” desnecessariamente.

Core

Oferece vantagem competitiva, Lógica complexa e única, difícil de replicar.

Supporting

Não oferece vantagem competitiva direta, mas suporta o Core. Requer solução customizada, pois é adaptado ao domínio principal, mas a lógica deve ser simples.

Generic (Genérico)

Problemas resolvidos da mesma forma por todas as empresas. Deve-se comprar ou adotar soluções prontas.

Build
Combinação de código customizado e bibliotecas open source que a equipe deve projetar, manter e escalar.
Buy
Compra de um serviço definido que agrega valor imediato, onde a manutenção e escalabilidade são geralmente do fornecedor.

Se adotamos por exemplo o Keycloak que é uma ferramenta de código aberto que transita entre o “Build” (você precisa hospedar, configurar e manter) e o “Buy” (no sentido de ser uma solução pronta que você “adquire” em vez de escrever lógica de autenticação do zero).


Exemplos de Subdomínios Genéricos

  • Autenticação (Auth0, Keycloak)
  • Pagamentos (Stripe, Adyen)
  • Notificações (Firebase)
  • Armazenamento (S3, GCS)
  • Observabilidade (Datadog, Prometheus)

Exemplos de Subdomínios de Apoio

  • Dashboard administrativo
  • Sistema de comentários
  • Gestão de usuários interna
  • Workflow de aprovação

Exemplo de Domínios e Subdomínios

Sistema Hospitalar (Escala 1-10)

Subdomínio Complexidade Diferenciação Categoria Ação Estratégica
1. IA de Apoio ao Diagnóstico 10 10 Core P&D Interno (Patente)
2. Medicina de Precisão (Genômica) 10 9 Core Parceria Científica
3. Triagem Digital e Fluxo de Urgência 7 8 Core Desenvolvimento Customizado
4. Gestão de Desfecho Clínico 8 8 Core Foco em Ciência de Dados
5. Monitoramento IoT (UTI Conectada) 8 7 Core Integração de Hardware
6. Prontuário Eletrônico (PEP) 9 6 Core Customização Pesada
7. Escalonamento Médico Inteligente 6 5 Supporting Algoritmo sob medida
8. Gestão de Leitos e Altas 5 5 Supporting Otimização de Processo
9. Portal de Telemedicina 4 4 Supporting Integrar SDKs de Mercado
10. Controle de Infecção (CCIH) 7 4 Supporting Regras de Negócio Internas
11. Faturamento TISS/TUSS 9 2 Generic Comprar (Software Especializado)
12. Agendamento Multicanal 4 2 Generic Usar SaaS (White-label)
13. Farmácia e Estoque Central 5 2 Generic Módulo de ERP Padrão
14. Compras e Suprimentos 5 1 Generic ERP de Mercado
15. Autenticação e Segurança (LGPD) 6 1 Generic Usar Provedor de Identidade
16. Folha de Pagamento 4 1 Generic Outsourcing / ERP
17. Manutenção de Equipamentos 3 1 Generic Software de Asset Mgmt
18. Hotelaria e Limpeza 2 1 Generic Terceirizar Software
19. Pesquisa de Satisfação 2 1 Generic Ferramenta Gratuita/SaaS
20. Contabilidade e Fiscal 6 1 Generic Software Padrão

40 Subdomínios Genéricos (Escala 1-10)

Item de Infraestrutura / Negócio Complexidade Diferenciação Ação Recomendada Exemplo de Solução
1. Autenticação (Login/Logout) 6 1 Comprar / SaaS Auth0, Keycloak, Firebase
2. Autorização (RBAC/Permissões) 5 2 Usar Biblioteca Casbin, Permit.io
3. Observabilidade (Logs/Tracing) 7 1 Comprar / SaaS Datadog, New Relic, ELK
4. Monitoramento de Métricas 6 1 Usar Open Source Prometheus + Grafana
5. Envio de E-mail Transacional 3 1 SaaS SendGrid, AWS SES, Postmark
6. Notificações Push 4 1 SaaS Firebase Cloud Messaging (FCM)
7. Gateway de Pagamento 7 2 Integração API Stripe, Adyen, Iugu
8. Faturamento (Subscription/Tax) 8 1 SaaS Chargebee, Stripe Billing
9. Armazenamento de Arquivos 4 1 Infraestrutura Cloud AWS S3, Google Cloud Storage
10. CDN (Entrega de Conteúdo) 5 1 Configuração Cloud Cloudflare, Akamai
11. Mensageria / Filas 6 1 PaaS / Middleware RabbitMQ, Kafka, AWS SQS
12. Backup e Disaster Recovery 8 1 Automação Cloud AWS Backup
13. Gestão de API (Gateway) 6 1 Solução Pronta Kong, Apigee, Tyk
14. Busca (Full-text Search) 7 2 Usar Motor Pronto Elasticsearch, Algolia
15. Agendamento de Tarefas (Cron) 3 1 Lib / Framework Hangfire, Quartz.net
16. Tradução e Localização (i18n) 2 1 Lib Padrão i18next, Lokalise
17. Documentação de API 2 1 Gerador Automático Swagger (OpenAPI)
18. Verificação de Identidade (KYC) 8 2 SaaS Especializado Unico, Onfido
19. Chat / Mensagens em Tempo Real 7 2 SDK / SaaS Sendbird, Stream Chat
20. Gerenciamento de Consentimento (LGPD) 4 1 SaaS OneTrust, Cookiebot
21. Auditoria de Dados (Trail Logs) 4 1 Biblioteca Envers, Audit.NET
22. Relatórios de BI / Analytics 6 2 Ferramenta de BI PowerBI, Metabase, Looker
23. Gestão de Segredos (Vault) 6 1 Solução de Segurança HashiCorp Vault, AWS Secrets
24. Conversão de Documentos (PDF/Img) 3 1 Lib de Terceiros Puppeteer, IronPDF
25. Mapas e Geocodificação 5 2 API Google Maps, Mapbox
26. Testes A/B e Feature Flags 4 2 SaaS LaunchDarkly, Flagsmith
27. Help Desk / Chat de Suporte 2 1 SaaS Zendesk, Intercom
28. Gerenciamento de Usuários (IAM) 6 1 SaaS Okta, Azure AD
29. Exportação de Dados (CSV/XLS) 3 1 Lib Padrão SheetJS, Pandas
30. Prevenção de Fraude (Anti-fraud) 8 2 SaaS Especializado Konduto, ClearSale
31. Assinatura Eletrônica 3 1 API DocuSign, Clicksign
32. Redimensionamento de Imagem 4 1 SaaS / Serverless Cloudinary, Imgix
33. Cache (In-memory) 5 1 Middleware Redis, Memcached
34. Validação de Endereço (CEP) 2 1 API ViaCEP, Postmon
35. Pesquisas e NPS 2 1 SaaS Hotjar, SurveyMonkey
36. Webhook Management 5 1 Solução Pronta Svix, Hookdeck
37. Single Sign-On (SSO Social) 4 1 SaaS NextAuth.js, Clerk
38. Gerenciamento de DNS 3 1 Infraestrutura Route53, GoDaddy
39. Análise de Performance (APM) 7 1 SaaS Sentry, AppDynamics
40. Shortener (Encurtador de Link) 2 1 Lib / SaaS Bitly, Dub.co

40 Subdomínios de Suporte (Escala 1-10)

Subdomínio de Apoio Complexidade Diferenciação Por que é Suporte?
1. Gestão de Agenda Interna 4 4 Organiza o tempo, mas não é o serviço final.
2. Painel de Controle (Admin) 5 3 Ferramenta para equipe interna operar o sistema.
3. Cadastro de Fornecedores 3 2 Necessário para o ERP, mas sem lógica única.
4. Sistema de Comentários 3 3 Engajamento que suporta o conteúdo principal.
5. Favoritos / Listas de Desejos 2 3 Auxilia a conversão no Core.
6. Workflow de Aprovação 5 5 Regras internas específicas de hierarquia.
7. Gerenciador de Templates 4 2 Facilita a criação de documentos/e-mails.
8. Histórico de Alterações (Timeline) 3 4 Suporta auditoria e visualização de dados.
9. Dashboard de Metas Equipe 4 4 Motivação interna, não impacta o cliente.
10. Controle de Acesso Físico 3 2 Segurança predial integrada ao sistema.
11. Gestão de Inventário Simples 5 4 Apoia a operação (ex: estoque de papel).
12. Portal de Autoatendimento 4 5 Reduz carga do suporte humano.
13. Gerador de Relatórios Custom 6 5 Extração de dados para tomada de decisão.
14. Cadastro de Catálogo 4 3 Organização de itens/serviços oferecidos.
15. Sistema de FAQ Dinâmico 2 2 Apoia o sucesso do cliente.
16. Checklists de Procedimento 3 5 Garante que o processo Core seja seguido.
17. Gestão de Contatos (CRM Lite) 4 4 Apoia a área comercial/atendimento.
18. Calculadora de Impostos Local 5 3 Regras específicas que mudam por região.
19. Mural de Avisos Internos 2 1 Comunicação básica entre funcionários.
20. Upload e Processamento de Docs 5 4 Preparação de dados para o Core.
21. Categorização/Tags de Dados 3 3 Organiza a busca do sistema.
22. Gestão de Filas de Atendimento 4 5 Melhora a experiência, mas não é o produto.
23. Logística de Entrega Interna 5 4 Movimentação de materiais entre prédios.
24. Validação de Regras de Negócio 6 5 “Guarda-costas” da integridade do Core.
25. Exportação para Contabilidade 4 2 Ponte entre o sistema e o setor financeiro.
26. Pesquisa de Clima Organizacional 2 1 Apoio ao RH integrado ao sistema.
27. Importação de Dados Legados 6 2 Esforço único para migração de clientes.
28. Gerenciador de Banners/Promos 3 4 Apoia o marketing no front-end.
29. Sistema de Ranks/Badges 4 5 Gamificação simples para engajamento.
30. Tradutor de Termos Técnicos 3 3 Glossário para usuários do sistema.
31. Gestão de Equipas/Squads 3 3 Define quem trabalha em qual projeto.
32. Integração com Calendários 4 3 Sincroniza dados com Google/Outlook.
33. Central de Notificações 4 4 Agrega avisos para o usuário não se perder.
34. Backup de Configurações 3 2 Guarda preferências do usuário.
35. Verificador de Duplicidade 4 4 Limpeza de base de dados.
36. Workflow de Onboarding 5 5 Tutorial de primeiro uso do sistema.
37. Gestão de Cupons de Desconto 4 4 Ativação de gatilhos de venda.
38. Reserva de Salas/Equipamentos 2 2 Organização de ativos internos.
39. Controle de Versão de Documentos 5 4 Evita perda de dados em edição coletiva.
40. Dashboard de Saúde do Sistema 4 3 Visão gerencial sobre estabilidade.

Referências

Livros

  • Eric Evans — Domain-Driven Design
  • Vaughn Vernon — Implementing Domain-Driven Design
  • Vlad Khononov — Learning Domain-Driven Design

Autores e influências

  • Martin Fowler — arquitetura de software
  • Sam Newman — microservices
  • Alberto Brandolini — Event Storming

© BP STRAT. Todos os direitos reservados. readme