Sobes.tech
Middle — Middle+

Objasnite šta znači skraćenica CQRS i kako se koristi u arhitekturi sistema

sobes.tech АИ

Одговор од АИ

CQRS (Razdvajanje odgovornosti komande i upita) je obrazac arhitekture koji razdvaja operacije promene stanja (komande) od operacija čitanja podataka (upiti).

Glavna ideja:

  • Komande (Commands) — operacije koje menjaju stanje sistema (npr. kreiranje, ažuriranje, brisanje podataka).
  • Upiti (Queries) — operacije koje samo čitaju podatke, ne menjajući ih.

Korišćenje CQRS omogućava:

  • da se čitanje i pisanje optimizuju odvojeno, koristeći različite modele podataka ili čak različite baze podataka.
  • pojednostavljenje skaliranja, jer čitanje i pisanje mogu skalirati nezavisno.
  • poboljšanje bezbednosti i kontrole, razgraničavajući prava na komande i upite.

Primer u C#:

// Komanda
public class CreateOrderCommand {
    public int ProductId { get; set; }
    public int Quantity { get; set; }
}

// Handler komande
public void Handle(CreateOrderCommand command) {
    // Logika za kreiranje porudžbine
}

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

// Handler upita
public OrderDto Handle(GetOrderQuery query) {
    // Logika za dobijanje podataka o porudžbini
}

Na ovaj način, CQRS pomaže u razdvajanju odgovornosti i povećava fleksibilnost arhitekture.