4. Capa de Aplicación¶
Define la API pública del contexto (Application Services), Comandos y Flujos.
Comandos, Eventos y DTOs¶
BoundedContext Checkout {
Aggregate OrderAgg {
CommandEvent PlaceOrderCommand { - OrderDTO details }
DataTransferObject OrderDTO { String productId int quantity }
}
}
Flujos y Coordinación¶
Modelan procesos de negocio o sagas.
BoundedContext Checkout {
Application CheckoutApp {
// Define la orquestación de un flujo
flow OrderFulfillment {
command PlaceOrderCommand
event OrderPlaced
command BillCustomer
event PaymentReceived
}
// Coordina interacción entre contextos (opcional)
coordination ShippingCoordination {
inventoryCheck
shippingRequest
}
}
}
Patrón de Archivo Recomendado¶
Un archivo .cml puede contener todo, pero es común estructurarlo así:
- Strategic: Al inicio, Context Maps y definiciones de Dominios.
- Bounded Contexts: Definiciones vacías o de alto nivel (
BoundedContext A implements X {}). - Details: Luego, bloques detallados para cada Bounded Context (
BoundedContext A { ... }) con su táctica.
El orden no es estricto, ya que CML resuelve referencias por nombre globalmente dentro del archivo.