Patrones para diseñar arquitectura flexible en node.js (CQRS / ES / Onion)

En esta publicación, presenté un proyecto que utiliza patrones CQRS y de aprovisionamiento de eventos. Está organizado usando arquitectura de cebolla y escrito con TypeScript.

"Flexible" ¿cómo?

Estoy usando el término flexible para promover una arquitectura capaz de adaptarse a diferentes tipos de entornos. Más precisamente, estoy tratando de:

  • Separar la lógica empresarial central de los detalles de implementación
  • ser independiente de cualquier base de datos, marco o servicio
  • use funciones puras simples siempre que sea posible
  • hacer que el proyecto sea fácil de escalar "horizontalmente"
  • hacer que el proyecto sea fácil de probar
  • use el sistema de tipos principalmente para comunicar el "lenguaje ubicuo" del dominio central

Actualización: esta publicación se ha trasladado a mi propio blog. Puede leerlo aquí:
Patrones para diseñar arquitectura flexible en node.js (CQRS / ES / Onion)