Kommando-spørring-ansvar-segregering

Image
Funksjonelt prinsipp for CQRS med sourcing av hendelser

Den Kommandospørre ansvar Segregering ( CQRS , [ kə'mæ: nd 'kwɪ (ə) ri: ri, spɑnsə'bɪləti, sɛgrɪ'geiʃ (ə) n ] eller [ Si; KJU: ɑ: r ɛs ], engelsk for slike som "Command Query Separation of Responsibilities") er et designmønster for databasespørsmål som ble definert av Greg Young .

CQRS-mønsteret forplanter en inndeling av objektmodellen i to objektmodeller med hensyn til tilgang til databasen:

  • en objektmodell for lesetilgang
  • en objektmodell for skrivetilgang

I motsetning til et CRUD- syn for tilgang til en database - der et felles objekt er ansvarlig for spørsmål så vel som for lesing, skriving og sletting - er det to objekter med CQRS: kommandoer for skriving (endring og sletting) og spørsmål å lese.

fordeler

  • Ulike skalerbarhet , skrivetilgang kan kjøres på andre datamaskiner enn lesetilganger, og hver kan skaleres forskjellig.
  • Egnet for bruk i serviceorienterte arkitekturer , for eksempel i cloud computing
  • Forbedret sikkerhet gjennom separate roller for lese- og skriveoperasjoner
  • Samtidig bruk av forskjellige versjoner av samme programvare er mulig
  • Tilpasning til endrede forretningskrav
  • Utvikling av de enkelte komponentene av forskjellige team
  • Kan kombineres med event sourcing

ulempe

  • Stor innsats innen programvareutvikling. Mer egnet for prosjekter med mange samtidige brukere.
  • Krever riktig infrastruktur.
  • Transaksjoner er vanskelige å gjennomføre.
  • Spørringer kan utføres før kommandoer er utført. Versjonering og hurtigbuffer er derfor nødvendig for å sikre at klienten mottar data i riktig versjon.

Rammeverk

.NETT
JVM
JavaScript
  • wolkenkit. Hentet 27. juni 2017 (engelsk, CQRS, DDD og event sourcing framework for JavaScript).
PHP
  • prooph. Tilgang 1. februar 2018 (engelsk, CQRS og Event Sourcing Infrastructure for PHP).

litteratur

  • Chris Richardson: Microservices Patterns . Manning, Shelter Island NY 2019, ISBN 978-1-61729-454-9 , pp. 228-252 (amerikansk engelsk).

weblenker

hovne opp

  1. Martin Fowler: CQRS. 14. juli 2011, åpnet 18. mai 2014 .
  2. ^ Greg Young: CQRS-dokumenter av Greg Young. (PDF) I: WordPress. November 2010, åpnet 13. juli 2014 .
  3. http://codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh/