Skip to content

Bounded contexts

Un bounded context es un limite dentro del cual un modelo tiene significado consistente.

Por que importan

En sistemas grandes, un unico modelo global suele fallar.

txt
Customer en ventas
Customer en soporte
Customer en facturacion

Pueden compartir datos, pero no necesariamente reglas, estados o responsabilidades.

Ejemplo

Plataforma de cursos:

txt
Catalog
  Course
  Instructor
  PublicationStatus

Learning
  Enrollment
  Progress
  LessonCompletion

Billing
  Invoice
  Payment
  TaxData

Cada contexto protege su lenguaje y su modelo.

Senales de contexto distinto

  • Las mismas palabras significan cosas distintas.
  • Equipos distintos cambian reglas sin coordinarse siempre.
  • Hay ciclos de vida diferentes.
  • Hay requisitos de escalado o seguridad distintos.
  • Las tablas compartidas generan conflictos constantes.

Bounded context no siempre es microservicio

Un bounded context puede vivir en:

  • Un modulo dentro de un monolito.
  • Un paquete independiente.
  • Un servicio separado.
  • Un sistema externo.

La frontera conceptual es mas importante que la frontera fisica.

Context map

Un context map muestra relaciones:

txt
Catalog -> Learning -> Billing
   |          |          |
publica   matricula   factura

Checklist

  • Cada contexto tiene vocabulario propio.
  • Las dependencias entre contextos son explicitas.
  • No se comparte modelo interno por comodidad.
  • La integracion usa contratos claros.
  • La separacion fisica se decide despues de entender la frontera conceptual.