Saga Pattern
Saga, pattern, EK, DISTRIBUTED, TRANSACTION, ko, EK, SERIES, of, LOCAL, TRANSACTIONS, mein, BREAK, karta hai — HAR, STEP, ka, EK, "COMPENSATING" ACTION, hota hai, JO, PREVIOUS, STEP, ko, UNDO, karta hai, AGAR, KOI, BAAD, ka, STEP, FAIL, ho, jaaye.
CHOREOGRAPHY-based, saga, mein, HAR, service, EVENTS, ko, LISTEN, karके, apna, KAAM, karti hai (koi, central, coordinator, nahi). Orchestration-based, saga, mein, EK, CENTRAL, "orchestrator" HAR, STEP, ko, EXPLICITLY, COORDINATE, karta hai.
// Orchestration-based saga:
async function placeOrderSaga(order) {
try {
await reserveInventory(order);
await processPayment(order);
await scheduleShipping(order);
} catch (err) {
await compensate(order); // rollback, previous, successful, steps
}
}- Saga = distributed, transaction, ko, local, transactions, ki, series, mein, break, karta, hai
- Compensating, actions, se, failed, steps, ko, "rollback" kiya, jaata, hai
- Choreography (event-based) vs, Orchestration (central, coordinator)
Choreography-based, sagas, mein, EK, IMPLICIT, "WORKFLOW" hota hai, JO, MULTIPLE, services, ke, EVENT, handlers, mein, SPREAD, hota hai — SIMPLE, sagas, ke, liye, GOOD, hai, LEKIN, COMPLEX, sagas, (many, steps) ke, liye, "KAUN, KYA, kar, raha, hai" TRACK, karna, HARD, ho, jaata hai.
Saga, steps, ko, IDEMPOTENT, hona, CHAHIYE (SAME, operation, MULTIPLE, baar, RUN, karne, PAR, SAME, result) — kyunki, RETRIES, (network, failures, ke, WAJAH, se) EK, HI, step, ko, MULTIPLE, baar, TRIGGER, kar, sakte, hain.