CQRS with Spring Boot
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 = 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
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.