🔀
Distributed Data & Transactions

CQRS with Spring Boot

Separate Read/Write Models
💡 CQRS, Spring, Boot, mein, EK, "TWO-COUNTER, SYSTEM" jaisa, hai — EK, COUNTER, WRITE, (orders, place, karna) ke, liye, hai, DUSRA, COUNTER, READ, (order, history, dekhna) ke, liye, hai — HAR, EK, apni, KAAM, ke, liye, OPTIMIZED, hai.

Spring, Boot, mein, CQRS, IMPLEMENT, karne, ke, liye, DO, ALAG, SETS, of, ENTITIES/REPOSITORIES, banaye, ja, sakte, HAIN — EK, WRITE-OPTIMIZED, (NORMALIZED), EK, READ-OPTIMIZED, (DENORMALIZED, aksar, EK, ALAG, database, mein).

Events, (jaise, Kafka, se) WRITE, MODEL, se, READ, MODEL, ko, UPDATE, karte, hain — READ, MODEL, EVENTUALLY, CONSISTENT, hota hai, WRITE, MODEL, ke, saath.

// Write side:
@Entity
class Order { Long id; String status; List<OrderItem> items; }

// Read side (denormalized, view, EK, ALAG, "read" database, mein):
@Document   // MongoDB, jaise, read-optimized, store
class OrderView { String orderId, customerName, itemSummary, totalAmount; }
🔀
CQRS, Spring, Boot, mein, EK, "TWO-COUNTER, SYSTEM" jaisa, hai — EK, COUNTER, WRITE, (orders, place, karna) ke, liye, hai, DUSRA, COUNTER, READ, (order, history, dekhna) ke, liye, hai — HAR, EK, apni, KAAM, ke, liye, OPTIMIZED, hai.
1 / 2
⚡ Quick Recap
  • CQRS = write model, (normalized) aur, read, model, (denormalized), ALAG-ALAG
  • Events, se, write, model, se, read, model, update, hota, hai
  • Sirf, jaha, zaroori, ho, wahi, implement, karo — poore, application, mein, nahi
Is page mein (2 subtopics)

Read, model, ko, EK, "materialized, view" ki, tarah, treat, kiya, ja, sakta hai — @EventListener, ya, @KafkaListener, se, HAR, write-side, event, PAR, ISE, UPDATE, kiya, jaata hai, taaki, READ, queries, EXTREMELY, FAST, rahein.

@KafkaListener(topics = "order-events")
public void updateReadModel(OrderEvent event) {
    orderViewRepository.save(buildOrderView(event));
}

Write, model, ke, liye, EK, RELATIONAL, database, (PostgreSQL) aur, read, model, ke, liye, EK, DOCUMENT, database, (MongoDB) YA, EK, SEARCH, engine, (Elasticsearch) use, karna, COMMON, hai — HAR, EK, apni, ACCESS, pattern, ke, liye, OPTIMIZED, hai.