सागाधर्मः। भारत्यागे (५ नव) प्रवेशः। अत्र बहुसेवा दीर्घव्यवहारः। saga, compensate, orchestrate। न आशा-2PC; सागाधर्मः

English (minimizable)

After load shedding (5 Nov), this post covers sagas: local commits, compensating actions, orchestration versus choreography, idempotent steps, stuck visibility, reservations, failure policy and contrasts with dual write and outbox.

पूर्ण-शीर्षकम् / Full title

सागाधर्मः: A Metrical Codification of the Saga Pattern (with English glosses)

English · overview and topics (minimizable)

What this post is about

Sagas implement long-running business flows across services with local transactions and compensating actions instead of a global lock.

Topics covered

  1. Why not one global TX
  2. Local commit plus outcome
  3. Compensation as business reverse
  4. Orchestration vs choreography
  5. Idempotent steps
  6. Stuck saga visibility
  7. Reservations and semantic locks
  8. Failure compensate-or-stop
  9. When a local TX is enough
  10. Dual write vs saga vs outbox

Sanskrit title

सागाधर्मः = sāgā-dharmaḥ “dharma of the saga”.

English

Minimizable; Sanskrit-first.

परम्परा-सन्धिः / Series links
पूर्वं / Prior अत्र / Adds न पुनः / Does not repeat
द्वैधलेखनधर्मः (३० अक्टो) dual write anti-pattern contrast
बहिर्लेखनपटलः (२८ सितम्बे) outbox step event birth
घटनास्रोतधर्मः (२५ अक्टो) events choreography fuel
इदमर्थकुञ्चिका (४ अक्टो) idempotency step safety
इदम् saga compensate flow -
ग्राह्य-त्याज्य-विवेकः / Keep and avoid

ग्राह्यम् / Keep

१. local TX per step: no global XA fantasy
२. business compensations: not only row undo
३. choose orch or choreography: document map
४. idempotent step ids: duplicate safe
५. age open sagas: ops dashboards
६. reserve scarce goods: TTL holds
७. prefer single-DB TX: when invariant fits

त्याज्यम् / Avoid

  • hold distributed locks across SaaS APIs
  • compensation that is not actually reversible
  • no dashboard for open saga age
अध्याय-योजना / Chapter plan
प्रकरणम् विषयः छन्दः श्लोकाः
मङ्गलं बीजं च / Opening अनुष्टुभ्
मूलतत्त्वानि / Core अनुष्टुभ्
मुख्यविधिः / Method उपजाति
रक्षा · विधिः / Guards अनुष्टुभ्
विवेक · सीमा / Judgment अनुष्टुभ्
पूर्वसन्धिः / Series links उपजाति
उपसंहारः / Close अनुष्टुभ्
पारिभाषिक-कोशः / Glossary
Modern English संस्कृतम् Note
saga सागा / saga  
compensation क्षतिपूरणम्  
orchestration सूत्रधारणम्  
choreography नृत्यक्रमः / choreography  
reservation आरक्षणम्  
semantic lock अर्थबन्धः  
step id पदचिह्नम्  
stuck saga बद्धसागा  
local transaction स्थानीयव्यवहारः  
forward recovery अग्रसमारोपः  

श्लोकः १ (अनुष्टुभ्)

दीर्घव्यवहारः बहुसेवासु यदि एकTX न सम्भवति ।
सागाधर्मस्तस्माद् क्रमक्षतिपूरणम् ॥१॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
दीर्घव्यवहारः बहुसेवासु यदि एकTX न सम्भवति । सागाधर्मस्तस्माद् क्रमक्षतिपूरणम् ॥१॥

Word-for-word

संस्कृतपदम् Word-for-word English
दीर्घव्यवहारः long business action
बहुसेवासु across services
एकTX one transaction
न सम्भवति not possible
सागाधर्मः saga dharma
क्रमक्षतिपूरणम् ordered compensation

Gloss table

पदम् अर्थः / sense
सागाधर्मः saga dharma
क्रमक्षतिपूरणम् stepwise compensation

English sense
A saga breaks a cross-service business flow into local transactions plus compensating actions when a later step fails.

Context / topic
Topic: why saga. Distinct from dual write hope and from distributed 2PC.

वृत्तमिति: ८-८-८-८।

श्लोकः २ (अनुष्टुभ्)

each step local commit + outcome event ।
global lock मिथ्या ॥२॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
each step local commit + outcome event । global lock मिथ्या ॥२॥

Word-for-word

संस्कृतपदम् Word-for-word English
each each
step step
local local
commit commit
outcome outcome
event event
global global
lock lock
मिथ्या false

Gloss table

पदम् अर्थः / sense
local commit per service TX
global lock pretend XA

English sense
Every participant commits locally and emits an outcome. Do not hold global locks across alien systems.

Context / topic
Topic: local transactions.

वृत्तमिति: ८-८-८-८।

श्लोकः ३ (अनुष्टुभ्)

compensating action inverse business ।
not always DB undo ॥३॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
compensating action inverse business । not always DB undo ॥३॥

Word-for-word

संस्कृतपदम् Word-for-word English
compensating compensating
action action
inverse inverse
business business
not not
always always
DB DB
undo undo

Gloss table

पदम् अर्थः / sense
compensating action business reverse
DB undo mechanical rollback

English sense
Compensation is a business reverse such as refund or cancel not always a row delete.

Context / topic
Topic: compensation meaning.

वृत्तमिति: ८-८-८-८।

श्लोकः ४ (अनुष्टुभ्)

orchestration vs choreography ।
एकं न सर्वकर्म ॥४॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
orchestration vs choreography । एकं न सर्वकर्म ॥४॥

Word-for-word

संस्कृतपदम् Word-for-word English
orchestration orchestration
vs vs
choreography choreography
एकम् one
न सर्वकर्म not all jobs

Gloss table

पदम् अर्थः / sense
orchestration central coordinator
choreography event-driven peers

English sense
Choose a central orchestrator or peer event choreography on purpose. Mixing both without a map creates ghost steps.

Context / topic
Topic: styles.

वृत्तमिति: ८-८-८-८।

श्लोकः ५ (उपजाति)

idempotent steps + compensations
द्विः मा दह ।
at-least-once
सामान्यम् ॥५॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
idempotent steps + compensations द्विः मा दह । at-least-once सामान्यम् ॥५॥

Word-for-word

संस्कृतपदम् Word-for-word English
idempotent idempotent
steps steps
compensations compensations
द्विः twice
मा दह do not burn
at-least-once at-least-once
सामान्यम् normal

Gloss table

पदम् अर्थः / sense
idempotent steps safe replay
at-least-once delivery

English sense
Steps and compensations must tolerate duplicate delivery with saga and step ids.

Context / topic
Topic: idempotency.

वृत्तमिति: एकादशाक्षराः पादाः।

श्लोकः ६ (अनुष्टुभ्)

timeouts and stuck sagas visible ।
zombie flow प्रेतः ॥६॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
timeouts and stuck sagas visible । zombie flow प्रेतः ॥६॥

Word-for-word

संस्कृतपदम् Word-for-word English
timeouts timeouts
stuck stuck
sagas sagas
visible visible
zombie zombie
flow flow
प्रेतः ghost

Gloss table

पदम् अर्थः / sense
stuck sagas ops visibility
zombie flow never finishes

English sense
Track open sagas by age and state. Invisible stuck flows leak inventory and money.

Context / topic
Topic: observability.

वृत्तमिति: ८-८-८-८।

श्लोकः ७ (अनुष्टुभ्)

semantic lock / reservation step ।
oversell without hold ॥७॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
semantic lock / reservation step । oversell without hold ॥७॥

Word-for-word

संस्कृतपदम् Word-for-word English
semantic semantic
lock lock
reservation reservation
step step
oversell oversell
without without
hold hold

Gloss table

पदम् अर्थः / sense
reservation hold resource
oversell no hold

English sense
Reserve scarce resources early with TTL holds. Pure hope between steps oversells.

Context / topic
Topic: reservations.

वृत्तमिति: ८-८-८-८।

श्लोकः ८ (अनुष्टुभ्)

failure: compensate forward or stop ।
policy स्पष्टा ॥८॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
failure: compensate forward or stop । policy स्पष्टा ॥८॥

Word-for-word

संस्कृतपदम् Word-for-word English
failure failure
compensate compensate
forward forward
stop stop
policy policy
स्पष्टा clear

Gloss table

पदम् अर्थः / sense
compensate forward undo prior
stop manual path

English sense
Define whether failure auto-compensates prior steps or pages a human with a frozen state.

Context / topic
Topic: failure policy.

वृत्तमिति: ८-८-८-८।

श्लोकः ९ (अनुष्टुभ्)

not for tight single-DB invariants ।
local TX simpler ॥९॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
not for tight single-DB invariants । local TX simpler ॥९॥

Word-for-word

संस्कृतपदम् Word-for-word English
not not
tight tight
single-DB single-DB
invariants invariants
local local
TX TX
simpler simpler

Gloss table

पदम् अर्थः / sense
tight invariants need one commit
local TX prefer simple

English sense
If one database can own the invariant keep a local transaction. Sagas add moving parts for a reason.

Context / topic
Topic: when not.

वृत्तमिति: ८-८-८-८।

श्लोकः १० (उपजाति)

द्वैधलेखनं द्वौ स्रोता
सागा क्रम + क्षतिपूरणम् ।
आउटबॉक्स
जन्म ॥१०॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
द्वैधलेखनं द्वौ स्रोता सागा क्रम + क्षतिपूरणम् । आउटबॉक्स जन्म ॥१०॥

Word-for-word

संस्कृतपदम् Word-for-word English
द्वैधलेखनम् dual write
द्वौ two
स्रोता sources
सागा saga
क्रम order
क्षतिपूरणम् compensation
आउटबॉक्स outbox
जन्म birth

Gloss table

पदम् अर्थः / sense
द्वैधलेखनम् dual write
आउटबॉक्स outbox

English sense
Dual write invents two primaries at once; sagas sequence local commits with compensations; outbox still births each step event safely.

Context / topic
Topic: series distinctions.

सन्धिः: द्वैध युगपत्; सागा क्रम; पटल घटनाजन्म

वृत्तमिति: एकादशाक्षराः पादाः।

श्लोकः ११ (अनुष्टुभ्)

local-step compensate idempotent visible reserve पञ्चकम् ।
एभिः सागाधर्मः क्रमक्षतिपूरणसमन्वितः ॥११॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
local-step compensate idempotent visible reserve पञ्चकम् । एभिः सागाधर्मः क्रमक्षतिपूरणसमन्वितः ॥११॥

Word-for-word

संस्कृतपदम् Word-for-word English
local-step local-step
compensate compensate
idempotent idempotent
visible visible
reserve reserve
पञ्चकम् five-set

Gloss table

पदम् अर्थः / sense
पञ्चकम् local-step compensate idempotent visible reserve

English sense
Five limbs: local commits, real compensations, idempotent handlers, visible stuck state and early reservations.

Context / topic
Topic: checklist.

वृत्तमिति: ८-८-८-८।

श्लोकः १२ (अनुष्टुभ्)

इति सागाधर्मसारः क्रमक्षतिपूरणसमन्वितः ।
मितं दीर्घव्यवहारं क्रियायोग्यं तन्त्रधर्मः स उच्यते ॥१२॥
पदच्छेदः · Word-for-word · English (minimizable)

पदच्छेदः
इति सागाधर्मसारः क्रमक्षतिपूरणसमन्वितः । मितं दीर्घव्यवहारं क्रियायोग्यं तन्त्रधर्मः स उच्यते ॥१२॥

Word-for-word

संस्कृतपदम् Word-for-word English
इति thus
सागाधर्मसारः saga essence
क्रमक्षतिपूरणम् step compensation
मितम् measured
दीर्घव्यवहारम् long business
क्रियायोग्यम् operable
तन्त्रधर्मः system dharma

Gloss table

पदम् अर्थः / sense
मितं दीर्घव्यवहारम् measured long flow
तन्त्रधर्मः platform dharma

English sense
Closing: sequence local truth, reverse with business sense and never lose the open saga in the dark.

Context / topic
Topic: close.

उपसंहारन्यायः: पदे पदे प्रतिज्ञां कुरु; दोषे क्षतिं पूरय; प्रेतं मा त्यज।

वृत्तमिति: ८-८-८-८।

श्लोकसूची / Verse index

१. Why saga
२. Local TX
३. Compensate
४. Orch/choreo
५. Idempotent
६. Visibility
७. Reserve
८. Failure policy
९. When not
१०. Series
११. Five limbs
१२. Close

सन्दर्भाः / References
  1. Prior: dual write 2026-10-30; outbox 2026-09-28; events 2026-10-25.
  2. Domain: saga pattern.
  3. English minimizable; Sanskrit-first.
  4. Style: no em dash; no Oxford comma in English clauses.