Selami CQRS

Artikel ini adalah sinopsis dari materi Klarifikasi CQRS .





Sebelum Anda mulai memahami CQRS, Anda perlu memahami dua kekuatan pendorong utama di baliknya: kolaborasi dan keusangan.





Kolaborasi mengacu pada situasi di mana beberapa peserta menggunakan atau mengubah kumpulan data yang sama, terlepas dari apakah mereka benar-benar bermaksud untuk berkolaborasi. Seringkali ada aturan yang menentukan pengguna mana yang dapat melakukan modifikasi. Dan modifikasi ini mungkin dapat diterima di satu kasus dan tidak dapat diterima di kasus lain. Pengguna dapat menjadi orang atau perangkat lunak sungguhan.





Usang mengacu pada fakta bahwa dalam sistem multi-pengguna, begitu data telah ditunjukkan kepada pengguna, data yang sama kemudian dapat berubah dan menjadi usang. Hampir semua sistem yang menggunakan caching, misalnya, untuk meningkatkan kinerja, bekerja dengan data yang sudah ketinggalan zaman. Ini berarti Anda tidak dapat sepenuhnya mempercayai keputusan yang dibuat oleh pengguna kami, karena keputusan tersebut mungkin saja dibuat berdasarkan data yang sudah ketinggalan zaman.





Arsitektur berlapis standar tidak mengatasi semua masalah ini. Meskipun meletakkan semua data dalam satu database dapat membantu meningkatkan kolaborasi, keusangan cenderung diperburuk dalam arsitektur seperti itu dengan menggunakan caching sebagai alat kinerja.





Gambar 1.  - Model CQRS
Gambar 1. - Model CQRS

AC . , (Commands โ€“ CQRS). (Queries โ€“ CQRS)





(Queries)

, , , ? , , ?





, , , , , . .





, , โ€“ , , , , ?





? ? SELECT * FROM MyViewTable . . . - (, ).





, . , . , . , .





, , . , , .





. , , . โ€“ .





, , .





, , . (, .). , . , โ€“ . . ?





, , . , , , , .





, , , . .





(CQRS).





(Commands)

CQRS , . , Excel ( , โ€“ ), .





, , . , , . , ( ). , .





, , . - , , - , , .





, , , - . - , - . , . , - .





, , . - , , . , . , , , .





, , , .





UIs

(Queries) . , , , .





UI , , , , , . , , ID . , ID (int, guid .).





, , โ€“ . - .





, , . , , .





, . ยซยป . , ? -?





, , , , . . , ? , ?





( ), , , , : ยซ, ยป. , .





, , โ€“ . , โ€“ .





, . , , โ€“ .





- , , , . . , , , , .





, , , .





1 , AC, AC, . , , , . , , .





(service layer)

. , CQRS, , , , . .





, . , , , ? โ€“ , , .





, , , , .





?

1 , , . , , .





, โ€“ , (CQRS). , , ?





ยซยป? ? ยซ ยป?





, , . , , .





, โ€“ , .





, , , , , ? , , ? key-value. - ? , .





, . , , CQRS.





, , , , . :





MakeCustomerPerferredCommand โ†’ CustomerHasBeenMadePerferredEvent





. , , .





, , . .





CQRS , . CQRS, - (SOA), . , -, -, .





, -, , .





CQRS . , , .





- CQRS, . , . , , , .





CQRS , -.








All Articles