DDD tactico en backend
DDD tactico se aplica en backend cuando el codigo necesita proteger reglas de negocio reales.
Estructura por modulo
txt
src/
modules/
orders/
domain/
Order.ts
Money.ts
OrderConfirmed.ts
application/
ConfirmOrderUseCase.ts
OrderRepository.ts
infrastructure/
PostgresOrderRepository.ts
presentation/
OrderController.tsDominio
Debe contener comportamiento:
txt
Order.confirm()
validate has lines
validate not cancelled
change status
record OrderConfirmedAplicacion
Coordina:
txt
ConfirmOrderUseCase
order = repository.findById(id)
order.confirm()
repository.save(order)
eventBus.publish(order.pullEvents())Infraestructura
Traduce:
txt
SQL row -> Order
Order -> SQL rowDTOs
Los DTOs pertenecen a los bordes. No deben convertirse automaticamente en entidades.
txt
ConfirmOrderRequest -> ConfirmOrderCommand -> OrderChecklist
- El dominio no importa framework.
- Los casos de uso expresan intenciones.
- Los repositorios devuelven agregados.
- Los mappers evitan filtrar ORM.
- Los eventos se publican desde aplicacion o infraestructura controlada.
