Implementing Saga in Spring Boot
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
}
}- 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
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.