CQRS – neues Architekturprinzip zur Trennung von Befehlen und Abfragen

Fazit

Der Begriff CQRS ist etwa vier Jahre alt. Das technikunabhängige und plattformneutrale Prinzip der Trennung von Befehlen und Abfragen ist jedoch viel älter und inzwischen zum erprobten Architekturmuster geworden. Mit CQRS lässt sich die Architektur von Softwaresystemen flexibler gestalten und Antworten für eine Reihe verbreiteter Probleme in der Softwareentwicklung finden. Für Entwickler und Architekten ist dieses, auf einfache Ideen setzende Prinzip zu einem wichtigen Werkzeug neben und anstelle schwergewichtiger Frameworks geworden. Doch auch für Projektleiter bietet CQRS interessante Aspekte, so vereinfacht die grundlegende Trennung von Benutzerinterface, Geschäftslogik und Datenaufbereitung die Aufteilung der Teams nach Kompetenzen und Erfahrung.

Die Entwurfsmuster rund um CQRS sind in jüngster Zeit ständiges Thema auf Konferenzen und in Publikationen, weit über den .NET-Bereich hinaus, in dem Greg Young CQRS zuerst formuliert hatte. Im Sommer 2012 wurde CQRS sogar durch Microsofts Pattern & Practices Group mit der Veröffentlichung eines Architekturleitfadens geadelt. Der stetig steigende Einsatz in der Praxis lässt sich gut an den vermehrten Nachfragen in der aktiven Google-Gruppe DDD/CQRS ablesen. Hier wird CQRS weiter definiert und entwickelt und Anfängern wie Profis gleichermaßen geholfen. (ane)

Marco Heimeshoff
ist Abteilungsleiter der Softwareentwicklung bei der ASD Personalinformationssysteme GmbH, Osnabrück, und bloggt unter Heimeshoff.de.

Philip Jander
ist selbstständiger Softwareentwickler und Trainer mit Schwerpunkt .NET in Münster, Westf.

  1. Greg Young; CQRS Introduction
  2. Greg Young; CQRS and Event Sourcing
  3. Udi Dahan; Clarified CQRS
  4. Martin Fowler; CQRS
  5. Bertrand Meyer; Object-Oriented Software Construction (2nd edition); Prentice Hall, 1997, S. 751
  6. Martin Fowler; Command Query Separation
  7. Robert C. Martin; Agile Software Development, Principles, Patterns, and Practices; Prentice Hall, 2002, S. 149, ein Auszug
  8. Martin Fowler, Further Patterns of Enterprise App. Architecture – Event Sourcing
  9. Eric Evans; Domain Driven Design; Addison-Wesley, 2003
  10. Jimmy Nilsson; Applying Domain Driven Design and Patterns; Addison-Wesley, 2006
  11. Vernon Vaughn; Implementing Domain Driven Design; Addison-Wesley, 2013, Auszug
  12. Martin Fowler; Refactoring; Addison-Wesley, 2000, S. 295