Sobes.tech
Middle — Middle+

Vysvetlite, čo znamená skratka CQRS a ako sa používa v architektúre systémov

sobes.tech AI

Odpoveď od AI

CQRS (Rozdelenie zodpovednosti príkazu a dopytu) je vzor architektúry, ktorý oddelí operácie zmeny stavu (príkazy) od operácií čítania dát (dopyty).

Hlavná myšlienka:

  • Príkazy (Commands) — operácie, ktoré menia stav systému (napríklad vytváranie, aktualizácia, mazanie dát).
  • Dopyty (Queries) — operácie, ktoré iba čítajú dáta, bez ich zmeny.

Použitie CQRS umožňuje:

  • optimalizovať čítanie a zápis samostatne, pomocou rôznych modelov dát alebo dokonca rôznych databáz.
  • zjednodušiť škálovanie, pretože čítanie a zápis môžu škálovať nezávisle.
  • zlepšiť bezpečnosť a kontrolu, rozlíšením práv na príkazy a dopyty.

Príklad v C#:

// Príkaz
public class CreateOrderCommand {
    public int ProductId { get; set; }
    public int Quantity { get; set; }
}

// Spracovateľ príkazu
public void Handle(CreateOrderCommand command) {
    // Logika na vytvorenie objednávky
}

// Dopyt
public class GetOrderQuery {
    public int OrderId { get; set; }
}

// Spracovateľ dopytu
public OrderDto Handle(GetOrderQuery query) {
    // Logika na získanie dát objednávky
}

Týmto spôsobom CQRS pomáha rozdeľovať zodpovednosti a zvyšovať flexibilitu architektúry.