Después de un mes de leer e investigar DDD, decidí comenzar mi propio proyecto y creé DDD con estos contextos limitados>
- Clientela
- Productos
- Pedidos
- Facturación
Cada contexto acotado tiene API de descanso como capa de presentación, capa de dominio, capa persistente.
Hasta ahora todo bien, el código funciona sin problemas, pero como vengo de un mundo monolítico, todavía estoy tratando de resolver lo siguiente:
- cuando quiero crear un nuevo cliente, emitir una nueva factura, crear un nuevo pedido, por ejemplo, quiero acceder a la lista de países. ¿Yo:
a) crear una lista de países en cada BC
b) cree un países BC -> API y úselo para obtener una lista de países disponibles
c) utilice una API de terceros y extraiga datos a través de la capa anticorrupción en cada BC
- al integrarme con API de terceros usando una capa anticorrupción o una capa adaptadora, ¿qué datos se deben incluir en mi modelo de dominio? Por ejemplo, si quiero integrar una API de zendesk con un cliente BC. ¿Necesito solo un ticketID en mi dominio, o tengo que extraer todos los datos de Zendesk a los que quiero acceder y usar en un Client BC?
Si mi aplicación MVC realmente está obteniendo datos de las API (capas de presentación de mis contextos limitados), me resulta muy difícil definir claramente los límites de cada BC. ¿Significa que un BC correctamente diseñado serviría a un solo controlador MVC sin la necesidad de consumir API adicionales?
fuente