En tecnología de la información , la segregación de responsabilidades de consultas de comandos (CQRS) es una arquitectura de sistema que extiende la idea detrás de la separación de comandos y consultas (CQS) al nivel de servicios. [1] [2] Un sistema de este tipo tendrá interfaces separadas para enviar consultas y para enviar comandos. Al igual que en CQS, el cumplimiento de una solicitud de consulta solo recuperará datos y no modificará el estado del sistema (con algunas excepciones como el acceso al registro), mientras que el cumplimiento de una solicitud de comando modificará el estado del sistema.
Muchos sistemas aplican la segregación a los modelos de datos que utiliza el sistema. Los modelos que se utilizan para procesar consultas suelen denominarse modelos de lectura y los que se utilizan para procesar comandos, modelos de escritura .
Aunque su origen suele atribuirse a Greg Young en 2010, [1] todo indica que el precursor de CQRS fue Udi Dahan quien en agosto de 2008 publicó en su blog un curso de formación que tenía como objetivo aplicar CQRS junto con SOA [3] y con más detalle en diciembre de 2009 en el artículo Clarifed CQRS. [4]