बहिर्लेखनपटलः। APIसंस्करणे (२७ सितम्बे) संविदा। अत्र घटना कथं जायते व्यवहारेण सह। पटलम्, प्रकाशकः, इनबॉक्स। न द्विलेखनभ्रमः; पटलधर्मः।
English (minimizable)
After API versioning (27 Sep), this post covers the transactional outbox: atomic business+event birth, relay publishers, states, lag, purge and consumer inbox dedupe.
पूर्ण-शीर्षकम् / Full title
बहिर्लेखनपटलः: A Metrical Codification of the Transactional Outbox (with English glosses)
English · overview and topics (minimizable)
What this post is about
The transactional outbox avoids dual-write bugs by storing outbound events in the same DB transaction as the business update then publishing them with a relay.
Topics covered
- Dual-write failure mode
- Same-transaction outbox rows
- Relay publisher
- pending/sent/failed states
- Ordering via keys
- Poison rows
- Lag metrics
- Purge retention
- Consumer inbox idempotency
- Link to message queues
Sanskrit title
बहिर्लेखनपटलः = bahir-lekhana-paṭalaḥ “tablet/surface for outward writing” (outbox).
परम्परा-सन्धिः / Series links
| पूर्वं / Prior | अत्र / Adds | न पुनः / Does not repeat |
|---|---|---|
| सन्देशपङ्क्तिशास्त्रम् (२९ जुलै) | bus transport | event birth atomicity |
| कार्यप्रवाहयन्त्रम् (२८ जुलै) | sagas | outbox as step signal |
| पुनःप्रयासन्यायः (१४ अगस्त) | retry | relay retries |
| इदम् | outbox relay inbox dual-write fix | - |
ग्राह्य-त्याज्य-विवेकः / Keep and avoid
ग्राह्यम् / Keep
१. एकव्यवहारः: business+outbox one txn
२. प्रकाशकरिले: ack then mark sent
३. स्थितिमापनम्: lag age depth
४. विषनिरोधः: poison quarantine
५. शुद्धिः: sent-row retention
६. इनबॉक्स: consumer dedupe
७. घटनाID: stable event identity
त्याज्यम् / Avoid
- DB commit then best-effort publish only
- infinite retry poison
- never measure outbox lag
अध्याय-योजना / Chapter plan
| प्रकरणम् | विषयः | छन्दः | श्लोकाः |
|---|---|---|---|
| १ | मङ्गलं बीजं च / Opening | अनुष्टुभ् | २ |
| २ | मूलतत्त्वानि / Core | अनुष्टुभ् | २ |
| ३ | मुख्यविधिः / Method | उपजाति | १ |
| ४ | रक्षा · विधिः / Guards | अनुष्टुभ् | २ |
| ५ | विवेक · सीमा / Judgment | अनुष्टुभ् | २ |
| ६ | पूर्वसन्धिः / Series links | उपजाति | १ |
| ७ | उपसंहारः / Close | अनुष्टुभ् | २ |
पारिभाषिक-कोशः / Glossary
| Modern English | संस्कृतम् | Note |
|---|---|---|
| transactional outbox | बहिर्लेखनपटलः / आउटबॉक्स | |
| relay/publisher | प्रकाशकः | |
| dual write | द्विलेखनम् | |
| inbox pattern | इनबॉक्स / आन्तरिकपटलः | |
| at-least-once | न्यूनतमैकवारम् | |
| event id | घटनाकुञ्चिका | |
| cdc outbox | परिवर्तनप्रवाहपटलः | variant |
| polling relay | आलोकलप्रकाशकः | |
| outbox lag | पटलपश्चता | |
| poison message | विषघटना |
श्लोकः १ (अनुष्टुभ्)
बहिर्लेखनपटलस्तस्माद् एकसत्यसेतुः ॥१॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
द्विलेखने यदि एकं सिध्येद् अन्यत् नश्येत् तदा असत्यम् ।
बहिर्लेखनपटलस्तस्माद् एकसत्यसेतुः ॥१॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| द्विलेखने | in dual-write |
| यदि | if |
| एकम् | one |
| सिध्येत् | succeeds |
| अन्यत् | the other |
| नश्येत् | fails |
| असत्यम् | falsehood |
| बहिर्लेखनपटलः | outbound write tablet/outbox |
| एकसत्यसेतुः | one-truth bridge |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| द्विलेखने | dual write DB and bus |
| बहिर्लेखनपटलः | outbox |
| एकसत्यसेतुः | single-truth bridge |
English sense
Writing the database and then separately publishing to a queue can leave one side done and the other not. The outbox pattern writes the business row and an outbox row in one transaction then publishes asynchronously.
Context / topic
Topic: dual-write problem and outbox fix.
वृत्तमिति: ८-८-८-८।
श्लोकः २ (अनुष्टुभ्)
ततः एव परमाणुसत्यम् ॥२॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
व्यवहारलेखः पटललेखश्च एकस्मिन् व्यवहारे ।
ततः एव परमाणुसत्यम् ॥२॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| व्यवहारलेखः | domain row |
| पटललेखः | outbox row |
| एकस्मिन् व्यवहारे | in one transaction |
| परमाणुसत्यम् | atomic truth |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| व्यवहारलेखः | business record |
| पटललेखः | outbox record |
| परमाणुसत्यम् | atomic truth |
English sense
Both rows commit together or neither does. That atomicity is the whole point.
Context / topic
Topic: same-transaction outbox insert.
वृत्तमिति: ८-८-८-८।
श्लोकः ३ (अनुष्टुभ्)
क्रमेण इदमर्थया च ॥३॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
प्रकाशकः पटलं पठित्वा पङ्क्तौ क्षिपेत् ।
क्रमेण इदमर्थया च ॥३॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| प्रकाशकः | publisher |
| पटलम् | outbox |
| पठित्वा | having read |
| पङ्क्तौ | into queue |
| क्षिपेत् | should cast |
| क्रमेण | in order |
| इदमर्थया | via idempotent keys |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| प्रकाशकः | publisher worker |
| पङ्क्तौ | to the message bus |
| इदमर्थया | with idempotency |
English sense
A relay polls or tails the outbox and publishes. Marks sent only after broker ack. Uses idempotent event ids for at-least-once buses.
Context / topic
Topic: relay publisher.
वृत्तमिति: ८-८-८-८।
श्लोकः ४ (अनुष्टुभ्)
अदृश्यस्थितौ पुनर्यत्नो अन्धः ॥४॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
स्थितिः pending sent failed लेख्या पटले ।
अदृश्यस्थितौ पुनर्यत्नो अन्धः ॥४॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| स्थितिः | status |
| pending | pending |
| sent | sent |
| failed | failed |
| लेख्या | must be written |
| पटले | in outbox |
| अदृश्यस्थितौ | when status invisible |
| पुनर्यत्नः | retry |
| अन्धः | blind |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| pending sent failed | lifecycle states |
| पुनर्यत्नो अन्धः | blind retry |
English sense
Track delivery state on each outbox row for ops and replay.
Context / topic
Topic: outbox row state machine.
वृत्तमिति: ८-८-८-८।
श्लोकः ५ (उपजाति)
यदि व्यवसाये क्रमः इष्टः ।
विश्वपङ्क्तौ
क्रमः न जादू ॥५॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
क्रमः विभाजकेन रक्ष्यः
यदि व्यवसाये क्रमः इष्टः ।
विश्वपङ्क्तौ
क्रमः न जादू ॥५॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| क्रमः | ordering |
| विभाजकेन | by partition key |
| रक्ष्यः | to be guarded |
| व्यवसाये | in business |
| इष्टः | desired |
| विश्वपङ्क्तौ | on a global bus |
| न जादू | not magic |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| विभाजकेन | by partition key |
| क्रमः न जादू | order is not magic |
English sense
If order matters use keys that hash to one partition and document the guarantee. Do not assume total global order.
Context / topic
Topic: ordering guarantees.
वृत्तमिति: एकादशाक्षराः पादाः।
श्लोकः ६ (अनुष्टुभ्)
विषघटना मा अनन्तयत्नम् ॥६॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
मृतपङ्क्तिसदृशं failed पटलम् आलोक्यम् ।
विषघटना मा अनन्तयत्नम् ॥६॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| मृतपङ्क्तिसदृशम् | like DLQ |
| failed | failed |
| पटलम् | outbox |
| आलोक्यम् | must be watched |
| विषघटना | poison event |
| मा अनन्तयत्नम् | no infinite retry |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| failed पटलम् | failed outbox rows |
| विषघटना | poison event |
English sense
Poison payloads need quarantine metrics and human paths not infinite relays.
Context / topic
Topic: poison outbox rows. Links to queue DLQ.
वृत्तमिति: ८-८-८-८।
श्लोकः ७ (अनुष्टुभ्)
अदृश्यब्याकलॉग् विपत्तिः ॥७॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
पटलवृद्धिः माप्या पङ्क्तिगांभीर्यवत् ।
अदृश्यब्याकलॉग् विपत्तिः ॥७॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| पटलवृद्धिः | outbox growth |
| माप्या | measurable |
| पङ्क्तिगांभीर्यवत् | like queue depth |
| अदृश्यब्याकलॉग् | unseen backlog |
| विपत्तिः | incident |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| पटलवृद्धिः | outbox backlog |
| पङ्क्तिगांभीर्यवत् | like queue depth |
English sense
Alert on outbox lag age and depth. A stuck relay is a silent integration outage.
Context / topic
Topic: outbox lag SLOs.
वृत्तमिति: ८-८-८-८।
श्लोकः ८ (अनुष्टुभ्)
अनन्तपटलं भण्डारं दह्यते ॥८॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
शुद्धिः sent पङ्क्तीनां धारणेन मिता ।
अनन्तपटलं भण्डारं दह्यते ॥८॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| शुद्धिः | purging |
| sent | sent |
| पङ्क्तीनाम् | rows |
| धारणेन | with retention |
| मिता | measured |
| अनन्तपटलम् | endless outbox |
| भण्डारम् | storage |
| दह्यते | burns |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| शुद्धिः | cleanup/purge |
| sent पङ्क्तीनाम् | of sent rows |
English sense
Purge successfully sent rows on a retention clock. The outbox is not forever history unless you designed it so.
Context / topic
Topic: retention. Links to data lifecycle.
वृत्तमिति: ८-८-८-८।
श्लोकः ९ (अनुष्टुभ्)
पटलं ददाति इनबॉक्स रक्षति ॥९॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
इनबॉक्स प्रतिपक्षे द्विः उपभोगं वारयेत् ।
पटलं ददाति इनबॉक्स रक्षति ॥९॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| इनबॉक्स | inbox |
| प्रतिपक्षे | on the consumer side |
| द्विः उपभोगम् | double processing |
| वारयेत् | should block |
| पटलम् | outbox |
| ददाति | gives |
| इनबॉक्स | inbox |
| रक्षति | guards |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| इनबॉक्स | inbox/dedupe table |
| द्विः उपभोगम् | double consume |
English sense
Producers use outbox; consumers often need inbox idempotency keys so at-least-once delivery does not double-apply.
Context / topic
Topic: inbox counterpart.
वृत्तमिति: ८-८-८-८।
श्लोकः १० (उपजाति)
पटलं जन्म सत्यं वदति ।
उभौ विना
घटना मिथ्या ॥१०॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
सन्देशपङ्क्तिशास्त्रं वहनं वदति
पटलं जन्म सत्यं वदति ।
उभौ विना
घटना मिथ्या ॥१०॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| सन्देशपङ्क्तिशास्त्रम् | queue treatise |
| वहनम् | carrying |
| वदति | speaks |
| पटलम् | outbox |
| जन्म | birth |
| सत्यम् | truth |
| उभौ विना | without both |
| घटना | event |
| मिथ्या | false |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| वहनम् | transport |
| जन्म सत्यम् | birth truth |
English sense
Queues move messages; the outbox decides they were born with the business commit. You usually need both ideas.
Context / topic
Topic: link to message queues (29 Jul).
सन्धिः: पङ्क्तिः पथः; पटलः जन्म।
वृत्तमिति: एकादशाक्षराः पादाः।
श्लोकः ११ (अनुष्टुभ्)
एभिर्बहिर्लेखनपटलं एकसत्यसमन्वितम् ॥११॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
एकव्यवहारः प्रकाशकः स्थितिः शुद्धिः इनबॉक्स पञ्चकम् ।
एभिर्बहिर्लेखनपटलं एकसत्यसमन्वितम् ॥११॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| एकव्यवहारः | one transaction |
| प्रकाशकः | publisher |
| स्थितिः | state |
| शुद्धिः | purge |
| इनबॉक्स | inbox |
| पञ्चकम् | five-set |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| पञ्चकम् | txn relay state purge inbox |
English sense
Five limbs: atomic outbox write, relay publisher, visible states, retention purge and consumer inbox dedupe.
Context / topic
Topic: checklist.
वृत्तमिति: ८-८-८-८।
श्लोकः १२ (अनुष्टुभ्)
मितं प्रकाशनं क्रियायोग्यं तन्त्रधर्मः स उच्यते ॥१२॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
इति बहिर्लेखनपटलसार एकसत्यसमन्वितः ।
मितं प्रकाशनं क्रियायोग्यं तन्त्रधर्मः स उच्यते ॥१२॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| इति | thus |
| बहिर्लेखनपटलसारः | outbox essence |
| एकसत्यम् | one truth |
| मितम् | measured |
| प्रकाशनम् | publishing |
| क्रियायोग्यम् | operable |
| तन्त्रधर्मः | system dharma |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| मितं प्रकाशनम् | measured publish |
| तन्त्रधर्मः | platform dharma |
English sense
Closing: never split the business fact from the event birth without a transactional bridge.
Context / topic
Topic: close.
उपसंहारन्यायः: एकस्मिन् व्यवहारे जन्म; ततः प्रकाशः।
वृत्तमिति: ८-८-८-८।
श्लोकसूची / Verse index
१. Dual-write problem
२. Atomic insert
३. Relay
४. States
५. Ordering
६. Poison
७. Lag metrics
८. Purge
९. Inbox
१०. Queue link
११. Five limbs
१२. Close
सन्दर्भाः / References
- Prior: queues 2026-07-29; workflow 2026-07-28; retry 2026-08-14.
- Domain: transactional outbox and inbox idempotency.
- Bilingual word-for-word + sense.
- Style: no em dash; no Oxford comma in English clauses.