घटनास्रोतधर्मः। योजनाकोषे (२४ अक्टो) रूपम्। अत्र इतिहासः कथं सत्यम्। event log, projection, snapshot। न केवलं CRUD; स्रोतधर्मः।
English (minimizable)
After schema registry (24 Oct), this post covers event sourcing: immutable append logs, aggregates, projections, snapshots, schema evolution, idempotent handlers, privacy tension and when not to use ES.
पूर्ण-शीर्षकम् / Full title
घटनास्रोतधर्मः: A Metrical Codification of Event Sourcing (with English glosses)
English · overview and topics (minimizable)
What this post is about
Event sourcing stores domain changes as an ordered append-only event log and derives state by replaying those events (often with snapshots).
Topics covered
- State-only storage loses history
- Append-only immutability
- Aggregate/stream boundaries
- Read-model projections
- Snapshots for fast rebuild
- Schema evolution with registry
- Idempotent projectors
- Erasure vs immutability
- When ES is the wrong tool
- Contrast with ledger and CDC
Sanskrit title
घटनास्रोतधर्मः = ghaṭanā-srota-dharmaḥ “dharma of the event-source”.
English
Minimizable; Sanskrit-first.
परम्परा-सन्धिः / Series links
| पूर्वं / Prior | अत्र / Adds | न पुनः / Does not repeat |
|---|---|---|
| योजनाकोषधर्मः (२४ अक्टो) | schemas | event payload compat |
| परिवर्तनप्रवाहः (१३ अक्टो) | CDC | DB-level changes not domain ES |
| अभिलेखतन्त्रम् (९ जुलै) | ledger | related immutability |
| इदमर्थकुञ्चिका (४ अक्टो) | idempotency | projector safety |
| इदम् | event log projections snapshots | - |
ग्राह्य-त्याज्य-विवेकः / Keep and avoid
ग्राह्यम् / Keep
१. append-only events: no silent rewrite
२. aggregate keys: stream boundaries
३. async projections: for reads
४. snapshots: bounded replay
५. compat schemas: registry-backed
६. erasure plan: crypto-shred or policy
७. adopt with cause: not fashion CRUD
त्याज्यम् / Avoid
- mutate historical events in place
- query raw event log for every UI list
- ignore GDPR on infinite logs
अध्याय-योजना / Chapter plan
| प्रकरणम् | विषयः | छन्दः | श्लोकाः |
|---|---|---|---|
| १ | मङ्गलं बीजं च / Opening | अनुष्टुभ् | २ |
| २ | मूलतत्त्वानि / Core | अनुष्टुभ् | २ |
| ३ | मुख्यविधिः / Method | उपजाति | १ |
| ४ | रक्षा · विधिः / Guards | अनुष्टुभ् | २ |
| ५ | विवेक · सीमा / Judgment | अनुष्टुभ् | २ |
| ६ | पूर्वसन्धिः / Series links | उपजाति | १ |
| ७ | उपसंहारः / Close | अनुष्टुभ् | २ |
पारिभाषिक-कोशः / Glossary
| Modern English | संस्कृतम् | Note |
|---|---|---|
| event sourcing | घटनास्रोतीकरणम् | |
| event log | घटनापङ्क्तिः | |
| aggregate | समुच्चयः / aggregate | |
| projection | प्रक्षेपणम् / read model | |
| snapshot | स्नैपशॉट / पूर्णचित्रम् | |
| CQRS | लेखपठनभेदः | |
| compensating event | क्षतिपूरणघटना | |
| stream | प्रवाहः | |
| rehydration | पुनर्जलयणम् / rebuild | |
| crypto-shredding | कुञ्जीनाशगुप्तिः |
श्लोकः १ (अनुष्टुभ्)
घटनास्रोतधर्मस्तस्माद् सत्यपङ्क्तिः ॥१॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
यदि केवलं अन्तिमस्थितिः स्मृता तदा इतिहासः नश्यति ।
घटनास्रोतधर्मस्तस्माद् सत्यपङ्क्तिः ॥१॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| यदि | if |
| केवलम् | only |
| अन्तिमस्थितिः | final state |
| स्मृता | remembered |
| इतिहासः | history |
| नश्यति | perishes |
| घटनास्रोतधर्मः | event-source dharma |
| सत्यपङ्क्तिः | truth-row/log |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| अन्तिमस्थितिः | current state only |
| घटनास्रोतधर्मः | event sourcing |
| सत्यपङ्क्तिः | truth as event log |
English sense
Event sourcing stores every state change as an immutable event. Current state is a projection of the log not the only record.
Context / topic
Topic: why event sourcing. Distinct from CDC which captures DB rows.
वृत्तमिति: ८-८-८-८।
श्लोकः २ (अनुष्टुभ्)
update-in-place इतिहासं हन्ति ॥२॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
append-only पङ्क्तिः प्रामाणिकी ।
update-in-place इतिहासं हन्ति ॥२॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| append-only | append-only |
| पङ्क्तिः | log |
| प्रामाणिकी | authoritative |
| update-in-place | update in place |
| इतिहासम् | history |
| हन्ति | kills |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| append-only | immutable append |
| update-in-place | mutate stored events |
English sense
Never edit past events. Correct with new compensating events so audit and replay stay honest.
Context / topic
Topic: immutability.
वृत्तमिति: ८-८-८-८।
श्लोकः ३ (अनुष्टुभ्)
विश्वैकपङ्क्तिः न मापनम् ॥३॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
aggregate सीमा घटनाजातेः ।
विश्वैकपङ्क्तिः न मापनम् ॥३॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| aggregate | aggregate |
| सीमा | boundary |
| घटनाजातेः | of event family |
| विश्वैकपङ्क्तिः | one global log for all |
| न मापनम् | not scalable design |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| aggregate | consistency boundary |
| घटनाजातेः | of event types |
English sense
Group events by aggregate or stream key. One endless global unordered log is hard to reason about and scale.
Context / topic
Topic: stream/aggregate design.
वृत्तमिति: ८-८-८-८।
श्लोकः ४ (अनुष्टुभ्)
write model != query model ॥४॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
projection read model पृथक् ।
write model != query model ॥४॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| projection | projection |
| read | read |
| model | model |
| पृथक् | separate |
| write | write |
| model | model |
| query | query |
| model | model |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| projection | read model build |
| CQRS-class | separate read path |
English sense
Build read models asynchronously from events. Queries should not scan the raw event log for every page view.
Context / topic
Topic: projections / CQRS-style reads.
वृत्तमिति: ८-८-८-८।
श्लोकः ५ (उपजाति)
replay वेगाय ।
पूर्णreplay नित्यं
मन्दः ॥५॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
snapshot + events after
replay वेगाय ।
पूर्णreplay नित्यं
मन्दः ॥५॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| snapshot | snapshot |
| events | events |
| after | after |
| replay | replay |
| वेगाय | for speed |
| पूर्णreplay | full replay |
| नित्यम् | always |
| मन्दः | slow |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| snapshot | state checkpoint |
| replay | rebuild from events |
English sense
Periodic snapshots keep rebuilds fast. Replaying years of events on every boot does not scale.
Context / topic
Topic: snapshots for replay.
वृत्तमिति: एकादशाक्षराः पादाः।
श्लोकः ६ (अनुष्टुभ्)
योजनाकोषसन्धिः ॥६॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
schema evolution घटनासु कोषेण ।
योजनाकोषसन्धिः ॥६॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| schema | schema |
| evolution | evolution |
| घटनासु | in events |
| कोषेण | with registry |
| योजनाकोषसन्धिः | schema-registry link |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| schema evolution | event shape change |
| कोषेण | via registry |
English sense
Version event payloads with registry compatibility rules so old and new readers coexist.
Context / topic
Topic: event schemas. Links to schema registry (24 Oct).
वृत्तमिति: ८-८-८-८।
श्लोकः ७ (अनुष्टुभ्)
at-least-once द्विः मा दह ॥७॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
idempotent handlers अवश्याः ।
at-least-once द्विः मा दह ॥७॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| idempotent | idempotent |
| handlers | handlers |
| अवश्याः | required |
| at-least-once | at-least-once |
| द्विः | twice |
| मा दह | do not burn |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| idempotent handlers | safe reapply |
| at-least-once | delivery mode |
English sense
Projections and reactors must tolerate duplicate delivery using event ids.
Context / topic
Topic: handlers. Links to idempotency keys.
वृत्तमिति: ८-८-८-८।
श्लोकः ८ (अनुष्टुभ्)
अमिटलॉग् गोप्यतासंघर्षः ॥८॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
GDPR delete = tombstone + rewrite policy ।
अमिटलॉग् गोप्यतासंघर्षः ॥८॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| GDPR | GDPR |
| delete | delete |
| tombstone | tombstone |
| rewrite | rewrite |
| policy | policy |
| अमिटलॉग् | unerasable log |
| गोप्यतासंघर्षः | privacy conflict |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| tombstone | delete/marker events |
| अमिटलॉग् | immutable forever log |
English sense
True immutability collides with erasure rights. Plan crypto-shredding or controlled rewrite paths early.
Context / topic
Topic: privacy vs immutability.
वृत्तमिति: ८-८-८-८।
श्लोकः ९ (अनुष्टुभ्)
बिना कारणं ES मा ॥९॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
audit + debug = event log strength ।
बिना कारणं ES मा ॥९॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| audit | audit |
| debug | debug |
| event | event |
| log | log |
| strength | strength |
| बिना कारणम् | without reason |
| ES | event sourcing |
| मा | do not |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| audit + debug | forensics value |
| बिना कारणम् | without need |
English sense
Adopt event sourcing where history and replay matter. Do not use it as default CRUD fashion.
Context / topic
Topic: when not to use ES.
वृत्तमिति: ८-८-८-८।
श्लोकः १० (उपजाति)
घटनास्रोतः app इतिहासः ।
CDC
db श्रुतिः ॥१०॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
अभिलेखतन्त्रं ledger सत्यम्
घटनास्रोतः app इतिहासः ।
CDC
db श्रुतिः ॥१०॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| अभिलेखतन्त्रम् | ledger treatise |
| ledger | ledger |
| सत्यम् | truth |
| घटनास्रोतः | event source |
| app | app |
| इतिहासः | history |
| CDC | CDC |
| db | db |
| श्रुतिः | hearing |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| अभिलेखतन्त्रम् | ledger treatise |
| CDC | change capture |
English sense
Ledgers business truth; event sourcing app domain history; CDC database row hearing. Related but not identical.
Context / topic
Topic: series distinctions.
सन्धिः: लेखः वित्तम्; स्रोतः डोमेन्; CDC सारणी।
वृत्तमिति: एकादशाक्षराः पादाः।
श्लोकः ११ (अनुष्टुभ्)
एभिर्घटनास्रोतः सत्यपङ्क्तिसमन्वितः ॥११॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
append aggregate projection snapshot privacy पञ्चकम् ।
एभिर्घटनास्रोतः सत्यपङ्क्तिसमन्वितः ॥११॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| append | append |
| aggregate | aggregate |
| projection | projection |
| snapshot | snapshot |
| privacy | privacy |
| पञ्चकम् | five-set |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| पञ्चकम् | append aggregate projection snapshot privacy |
English sense
Five limbs: immutable append, aggregate boundaries, read projections, snapshots for speed and an erasure plan.
Context / topic
Topic: checklist.
वृत्तमिति: ८-८-८-८।
श्लोकः १२ (अनुष्टुभ्)
मितं इतिहासं क्रियायोग्यं तन्त्रधर्मः स उच्यते ॥१२॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
इति घटनास्रोतधर्मसारः सत्यपङ्क्तिसमन्वितः ।
मितं इतिहासं क्रियायोग्यं तन्त्रधर्मः स उच्यते ॥१२॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| इति | thus |
| घटनास्रोतधर्मसारः | event-sourcing essence |
| सत्यपङ्क्तिः | truth log |
| मितम् | measured |
| इतिहासम् | history |
| क्रियायोग्यम् | operable |
| तन्त्रधर्मः | system dharma |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| मितं इतिहासम् | measured history |
| तन्त्रधर्मः | platform dharma |
English sense
Closing: keep history when it earns its keep; project for speed; never silently rewrite the past.
Context / topic
Topic: close.
उपसंहारन्यायः: घटनेन लिख; स्थित्या पठ; स्नैपैः त्वरय।
वृत्तमिति: ८-८-८-८।
श्लोकसूची / Verse index
१. Why ES
२. Append-only
३. Aggregates
४. Projections
५. Snapshots
६. Schemas
७. Idempotent handlers
८. Privacy
९. When not
१०. Ledger/CDC
११. Five limbs
१२. Close
सन्दर्भाः / References
- Prior: schema registry 2026-10-24; CDC 2026-10-13; ledger 2026-07-09; idempotency 2026-10-04.
- Domain: event sourcing patterns.
- English minimizable; Sanskrit-first.
- Style: no em dash; no Oxford comma in English clauses.