🔄
Distributed Data & Transactions

Implementing Saga in Spring Boot

Choreography vs Orchestration
💡 Saga, implementation, EK, "RELAY, RACE" jaisi, hai, Spring, Boot, mein — HAR, service, apna, "BATON" (STEP), PASS, karti, hai, agar, KOI, RUNNER, GIRT, jaata, hai, (STEP, FAILS) PICHLE, RUNNERS, ko, "BACK, TRACK" karna, PADТA, hai (compensating, actions).

Choreography-based, saga, Spring, Boot, mein, EVENT, listeners, (@KafkaListener) se, IMPLEMENT, ki, ja, sakti hai — HAR, service, EVENTS, ko, LISTEN, karके, apna, KAAM, karti, hai aur, apna, EVENT, PUBLISH, karti hai.

Orchestration-based, saga, ke, liye, LIBRARIES, jaise, Axon Framework, YA, EK, CUSTOM, "OrderSagaOrchestrator" service, USE, ki, ja, sakti, hai, JO, EXPLICITLY, HAR, STEP, ko, CALL, aur, COORDINATE, karti hai.

@KafkaListener(topics = "order-created")
public void handleOrderCreated(OrderEvent event) {
    try {
        inventoryService.reserveStock(event);
        kafkaTemplate.send("inventory-reserved", event);
    } catch (Exception e) {
        kafkaTemplate.send("inventory-reservation-failed", event);   // compensating, event
    }
}
🔄
Saga, implementation, EK, "RELAY, RACE" jaisi, hai, Spring, Boot, mein — HAR, service, apna, "BATON" (STEP), PASS, karti, hai, agar, KOI, RUNNER, GIRT, jaata, hai, (STEP, FAILS) PICHLE, RUNNERS, ko, "BACK, TRACK" karna, PADТA, hai (compensating, actions).
1 / 2
⚡ Quick Recap
  • Choreography saga = @KafkaListener, se, event-based, implementation
  • Orchestration saga = ek, CENTRAL, orchestrator, service, YA, Axon Framework
  • Compensating, events, se, failed, steps, "rollback" kiye, jaate, hain
On this page (2 subtopics)

Saga, flows, ko, test, karna, CHALLENGING, hai — EMBEDDED, Kafka, (spring-kafka-test) ya, EmbeddedKafkaBroker, se, INTEGRATION, tests, mein, POORE, saga, flow, ko, EVENTS, publish/consume, karके, VERIFY, kiya, ja, sakta hai.

@EmbeddedKafka(partitions = 1, topics = { "order-created" })
class OrderSagaIntegrationTest { /* ... */ }

Agar, EK, saga, step, EK, REASONABLE, time, ke, ANDAR, COMPLETE, nahi, hoti, (jaise, EK, service, DOWN, hai), EK, TIMEOUT, mechanism, chahiye, hota, hai, JO, saga, ko, automatically, compensate/rollback, kar, de, INDEFINITELY, "STUCK" rehne, ke, BAJAYE.