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.