Qué son los contextos delimitados en DDD
Clase 22 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
Viendo ahora - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
El diseño orientado al dominio (domain-driven design, DDD) centra el desarrollo en el lenguaje del negocio y en la semántica del dominio, no en detalles técnicos. Aquí verás cómo ese enfoque organiza un e-commerce en contextos delimitados (bounded contexts), conectando ventas, usuarios e inventario con claridad y bajo acoplamiento.
¿Qué es diseño orientado al dominio y por qué guía el modelo?
DDD propone modelar con el lenguaje común entre negocio y desarrollo. Importa más representar conceptos como usuario, venta o producto que decidir si algo es un service o una factory. La clave: alinea el software con cómo piensa el negocio, para que el modelo sea expresivo y sostenible.
¿Cómo se usa el lenguaje del negocio para modelar?
- Nombrando entidades según su significado real: producto, venta, cliente, stock, promoción.
- Priorizando semántica sobre implementación: primero el concepto, después la técnica.
- Evitando decisiones prematuras de patrones: no forzar service o factory si no aporta al dominio.
¿Qué rol cumplen los contextos delimitados (bounded contexts)?
- Detectar dónde cambia el significado de los términos.
- Encapsular modelos distintos para el mismo nombre: “producto” varía entre ventas e inventario.
- Permitir módulos o componentes desplegables por separado con contratos claros.
¿Cómo separar ventas, usuarios e inventario en un e-commerce?
En un e-commerce el término “producto” no significa lo mismo en todos lados. DDD invita a modularizar por contexto para evitar confusiones y dependencias innecesarias.
¿Qué significa “producto” en ventas vs. inventario?
- Ventas: precio, disponibilidad en stock, descripción, promociones.
- Inventario: peso, dimensiones, ubicación en depósito, disponibilidad física.
- Conclusión práctica: el “producto” es el mismo físicamente, pero su modelo cambia según el contexto.
¿Cómo se conectan los contextos con eventos?
- Integración por eventos entre contextos: al registrar un usuario, asociar un cliente en ventas.
- Sincronización de catálogo: cargar productos en inventario y luego vincular con productos vendibles en ventas.
- Beneficio: bajo acoplamiento y modelos limpios que evolucionan de forma independiente.
¿Qué cubre el contexto de usuarios?
- Identificación de compradores mediante autenticación y autorización.
- Gestión de perfil y seguridad sin mezclarlo con el rol de cliente en ventas.
- Posibles conexiones con otros contextos vía eventos o conectores bien definidos.
¿Qué habilidades y prácticas aplicar en tu arquitectura?
Adoptar DDD requiere habilidades de análisis, comunicación y diseño orientado a negocio, más que apego a frameworks.
¿Cómo alinear negocio y tecnología de forma práctica?
- Extracción del lenguaje del negocio: reuniones, ejemplos concretos, glosario vivo.
- Modelado del dominio: entidades, agregados y reglas según significado real.
- Detección de límites semánticos: separar cuando una palabra cambia de sentido.
¿Qué decisiones técnicas sostienen el diseño?
- Modularización por contextos delimitados: ventas, usuarios, inventario.
- Conectores y eventos para comunicación entre módulos.
- Despliegue independiente cuando conviene: componentes aislados con contratos estables.
¿Qué beneficios obtienes al enfocarte en el dominio?
- Modelos más claros y mantenibles.
- Equipos negocio–tecnología con lenguaje común y menos fricción.
- Evolución del sistema guiada por la semántica, no por la herramienta.
¿Tienes un reto de modelado o integración entre contextos en tu e-commerce? Cuéntalo y exploramos cómo DDD puede ayudarte a enfocarte en el negocio sin perder flexibilidad técnica.