Patrón de diseño CQRS

 CQRS es un patrón de diseño de software que nos muestra cómo separar la lógica de nuestras aplicaciones para separar las lecturas de las escrituras.
Y esto aplica tanto al código o la ejecución del programa como a la ubicación de los datos. 
Las siglas CQRS vienen del inglés y significan “Command query responsibility segregation”; Lo que viene a significar separación en la responsabilidad de las lecturas y los comandos (escrituras/actualizaciones).
El patrón CQRS es un patrón que no habíamos visto antes de la llegada de los microservicios ya que lo más normal era tener un monolito que lo hacía todo, incluido el conectarse a una sola base de datos.

Este diagrama muestra la estructura del modelo CQRS, mostrando la separación entre las operaciones de escritura y lectura, y como interactúan entre si.

Implementar CQRS

Cuando implementamos CQRS y tenemos las aplicaciones separadas no hay ningún motivo por el que debamos tener el mismo tipo de bases de datos, ¿es posible? si claro, pero no hay nada que nos obligue. 
De hecho es muy común, como en el caso que he explicado de los productos tener la base de datos de escritura de tipo relacional mientras que la de lectura que sea no relacional (NoSQL). 

Por ejemplo, si tenemos productos con las descripciones, precio y stock estamos relacionando 3 elementos que “no tienen nada que ver”. 
Me explico, la descripción del producto no va a cambiar si actualizamos el precio, mientras que actualizar el precio no cambiará el producto.

Cuando se utiliza el modelo de CQRS


Ejemplo de código



En conclusión, el patrón CQRS (Command Query Responsibility Segregation) es una opción valiosa en el diseño de sistemas complejos donde la separación de las operaciones de lectura y escritura puede ofrecer beneficios significativos. Al adoptar CQRS, se pueden lograr mejoras en la escalabilidad, el rendimiento y la mantenibilidad de la aplicación. Sin embargo, su implementación debe ser cuidadosamente considerada, ya que introduce complejidad adicional y puede no ser necesario para todas las aplicaciones.

https://www.netmentor.es/entrada/patron-cqrs-explicado-10-minutos



Comentarios

Entradas populares de este blog