CQRS Pattern

KATEGORİ

CQRS(Command Query Responsibility Segregation), bir sistemde yazma ve okuma işlemlerini birbirinden ayırmaya dayanır. Yazma işlemleri bir command servis tarafından yürütülürken, okuma işlemleri bir query servis tarafından yürütülür.

Sistemde yazma servisinin veri güncellemesi için bir zamana ihtiyaç vardır. Okuma servisinin de güncellenmiş veriyi almak için bir zamana ihtiyacı vardır. Okuma servisi güncellenmiş veriyi asenkron bir gecikme ile alır. Bu gecikme eventual consistency olarak adlandırılır. Yani bir noktada yazma servisi ile okuma servisinin eşleşmesi sağlanır; tutarlılık oluşur ancak bu anlık olarak olmaz.

Yazma ve okuma işlemleri ayrılarak sistem daha kullanışlı ve ölçeklenebilir bir hale gelir ancak bunun eksi yönü de veri tutarlılığının anlık olarak sağlanamamasıdır. CQRS kullanılarak yapılacak işe göre sistemin kullanışlı olması tercih sebebi olabilir.