CQRS

El patrón CQRS se refiere a separar el modelo de datos en lecturas (Query Model) y escrituras (Command Model). La segregación se puede hacer lógicamente o físicamente usando una base de datos distinta para cada modelo. Algunos de sus beneficios radican en optimizar alguno de los modelos, por ejemplo:

 

Escalabilidad independiente

Las consultas pueden traer miles de registros y no necesitan bloquear la base de datos mientras que las actualizaciones y escrituras si lo pueden requerir. Si la separación es física se puede usar una base de datos relacional para escrituras y una documental o de reporte para lecturas.

Seguridad

Obligatoriamente sólo las escrituras deben ser invulnerables a fallos de seguridad por individuos malintencionados, ya que pueden alterar los datos a guardar.

Mantenibilidad

Es más fácil llevar a cabo cambios y pruebas para dos equipos de desarrollo cuando los modelos están separados. Además solo las escrituras requieren validaciones de reglas de negocios.