Como ejemplo, para una aplicación que desarrollamos en mi empresa utilizamos el modelo CQRS de la siguiente manera:
-
La aplicación móvil interaccionaba con un respositorio NoSQL (AWS: DynamoDB) para priorizar los tiempos de respuesta, especialmente de escritura.
-
Utilizamos una arquitectura basada en eventos para replicar los datos en tiempo real a una BD en MySQL optimizado para la reportería.
Con lo anterior ganamos en:
- Aseguramos una alta disponbilidad y rápidos tiempos de respuesta para la aplicación móvil.
- Aseguramos excelentes tiempos de respuesta para la reportería.
Pero perdimos en:
- Complejidad de instalación.
- Complejidad de testing, que llegó a ser bastante complejo.
- Integridad de la información, ya que se vuelve muy complejo asegurar que la data es íntegra en ambos repositorios.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?