Command Query Responsibility Segregation CQRS - ghdrako/doc_snipets GitHub Wiki

CQRS to segregacja poleceń i odpowiedzialności zapytań, wzorzec oddzielający operacje odczytu i aktualizacji magazynu danych. Aby uzyskać większą izolację, możesz fizycznie oddzielić odczyt danych od zapisu danych. W takim przypadku baza danych odczytu może używać własnego schematu danych zoptymalizowanego dla zapytań. Na przykład może ona przechowywać zmaterializowany widok danych, aby uniknąć złożonych połączeń lub złożonych mapowań obiektowo-relacyjnych. Może ona nawet używać innego typu magazynu danych. Na przykład baza danych zapisu może być relacyjna, natomiast baza danych odczytu może być bazą danych dokumentów.

Jeśli są używane oddzielne bazy danych odczytu i zapisu, muszą być zsynchronizowane. Zazwyczaj jest to realizowane przez opublikowanie zdarzenia przez opublikowanie modelu zapisu za każdym razem, gdy aktualizuje bazę danych.

At its heart is the notion that you can use a different model to update information than the model you use to read information.

Reads Service

  • Dual writes
  • Database sync
  • Change Data Capture (CDC)
  • Hides a Lambda Architecture
    • a realtime view merged with a batch view