Skip to content
Latchkey

O Que é um Bounded Context? Traçando as Linhas Entre Modelos

Um bounded context é uma fronteira dentro da qual um domain model específico se aplica e cada termo tem um significado único e inequívoco.

Um conceito do domain-driven design, um bounded context é a resposta a um problema recorrente: a mesma palavra significa coisas diferentes em partes diferentes de um negócio. Um "customer" em billing não é o mesmo modelo que um "customer" em support. Um bounded context traça uma linha explícita para que cada modelo permaneça consistente dentro dele, e essa linha é muitas vezes exatamente onde você divide serviços e pipelines.

Uma fronteira ao redor de um modelo

Dentro de um bounded context, um domain model é internamente consistente e cada termo tem um significado. Entre contextos, a mesma palavra pode mapear para um modelo diferente. O contexto é o escopo dentro do qual o modelo e sua linguagem são inequívocos.

Por que importa

  • Previne um único modelo emaranhado que tenta significar tudo.
  • Dá aos times um ownership claro de uma fatia coerente do domínio.
  • Faz emergir uma costura natural para dividir serviços.
  • Torna a tradução entre modelos explícita em vez de acidental.

Onde as fronteiras caem

Bounded contexts muitas vezes mapeiam para times, serviços e deployment units. Uma fronteira de contexto bem escolhida tende a formar uma fronteira de microservice limpa, porque minimiza o acoplamento e a tradução necessários através da linha.

Tradução entre contextos

Quando dois contextos precisam conversar, eles traduzem através de um contrato explícito, uma API ou event schema, mapeando o modelo de um contexto para o outro. Essa camada de tradução é exatamente o API contract que os contract tests do CI verificam.

A conexão com CI/CD

Boas fronteiras de contexto alinham ownership, serviços e pipelines. Uma mudança geralmente permanece dentro de um contexto, então seu build, testes e deploy são escopados a um serviço. Fronteiras ruins vazam mudanças por muitos serviços e pipelines de uma vez.

Mudança contida, builds contidos

Quando uma mudança permanece dentro de um bounded context, só a pipeline daquele contexto roda, mantendo o feedback rápido. Runners gerenciados quentes (como o Latchkey) garantem que aquele build escopado retorne rapidamente em vez de esperar em uma fila compartilhada.

Principais conclusões

  • Um bounded context é o escopo dentro do qual um domain model e seus termos são consistentes.
  • Suas fronteiras muitas vezes viram as linhas naturais para serviços e deployment units.
  • A tradução entre contextos é um contrato explícito que o CI pode verificar.

Guias relacionados