Zum Inhalt springen

Command-Query-Responsibility-Segregation

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. März 2020 um 15:01 Uhr durch Timefrenzy (Diskussion | Beiträge) (Frameworks: Anpassung an die neue Benamsung von Axon). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Funktionsprinzip von CQRS mit Event Sourcing

Die Command-Query-Responsibility-Segregation (CQRS, [kə'mæ:nd 'kwɪ(ə)ri: ri,spɑnsə'bɪləti ,sɛgrɪ'geiʃ(ə)n] bzw. [si: kju: ɑ:r ɛs],[1] englisch für etwa Kommando-Abfrage-Zuständigkeits-Trennung) ist eine Variante des CQS-Prinzips auf Datenbank-Abfragen, welches durch Greg Young definiert wurde.[2]

Vorteile

Nachteile

  • Hoher Aufwand in der Softwareentwicklung. Eignet sich eher für Projekte mit vielen gleichzeitigen Benutzern.
  • Benötigt passende Infrastruktur.
  • Transaktionen sind schwer umzusetzen.
  • Queries können durchgeführt werden, bevor Commands durchgeführt wurden. Es werden daher Versionierung und ein In-Memory-Cache benötigt um sicherzustellen, dass der Client Daten in der richtigen Version erhält.

Trivia

Die Abkürzung CQRS wird von Softwareentwicklern aufgrund der Google-Autokorrektur scherzhaft als cars [kɑrz] ausgesprochen.

Frameworks

.NET
JVM
JavaScript
  • wolkenkit. Abgerufen am 27. Juni 2017 (englisch, CQRS-, DDD- und Event-Sourcing-Framework für JavaScript).
PHP
  • prooph. Abgerufen am 1. Februar 2018 (englisch, CQRS und Event Sourcing Infrastruktur für PHP).

Literatur

  • Chris Richardson: Microservices Patterns. Manning, Shelter Island NY 2019, ISBN 978-1-61729-454-9, S. 228–252 (amerikanisches Englisch).

Quellen

  1. Martin Fowler: CQRS. 14. Juli 2011, abgerufen am 18. Mai 2014 (englisch).
  2. Greg Young: CQRS Documents by Greg Young. (PDF) In: WordPress. November 2010, abgerufen am 13. Juli 2014 (englisch).