Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Advanced Pattern · Modul 16 dari 24

Belajar Microservices - CQRS Pattern

Pattern Command Query Responsibility Segregation (CQRS) memisahkan model penulisan data (Command / Mutation) dan pembacaan data (Query / Read Store).

1. Konsep Dasar CQRS

CQRS (Command Query Responsibility Segregation) adalah pola arsitektur yang memisahkan operasi **Command** (penulisan, pembaruan, penghapusan data) dan **Query** (pembacaan data).

  • Command Side (Write Model): Berfokus pada validasi bisnis, transaksi ACID, dan integritas data. Menggunakan RDBMS (misal PostgreSQL).
  • Query Side (Read Model): Berfokus pada pencarian super cepat, penampilan laporan, dan denormalisasi data. Menggunakan Read Store yang dioptimalkan (misal Elasticsearch atau Redis).
  • Synchronization Engine: Menggunakan Asynchronous Event Stream (Kafka / Change Data Capture) untuk meng-update Read Store secara real-time saat Write DB berubah.
Alur Arsitektur CQRS
[ Client Write ] ───> ( Command API ) ───> [ Write DB (PostgreSQL) ]
                                                   │
                                            ( Domain Event )
                                                   │
                                                   ▼
                                        [ Event Bus / Kafka ]
                                                   │
                                                   ▼
[ Client Read ]  <─── ( Query API )   <─── [ Read DB (Elasticsearch) ]