लेखनपृथक्करणधर्मः। व्ययसीमाधर्मस्य (१८ दिसं) अनन्तरं अत्र लेखनविवेको गभीरः: आज्ञामूर्तिः प्रश्नमूर्तिः विलम्बस्तरः प्रक्षेपकः। लेखनपृथक्करणधर्मः।
English (minimizable)
After spend (18 Dec), deepened CQRS: pure command models, thin query shapes, declared lag SLOs, one-truth then project, idempotent projectors, independent evolve and when not to split versus event-sourcing history.
पूर्ण-शीर्षकम् / Full title
लेखनपृथक्करणधर्मः: A Metrical Codification of Write Separation Dharma (with English glosses)
English · overview and topics (minimizable)
What this post is about
Commands protect invariants; queries serve shapes. The lag between them must be a product fact not a secret.
Topics
- Why split models
- Pure commands
- Thin reads
- Declared lag
- One truth then project
- Idempotent projectors
- Independent evolve
- Do not split early
- Vs event history
- Five limbs
- Close
- Seal
Sanskrit title
लेखनपृथक्करणधर्मः = dharma of separating the write path.
English
Minimizable; Sanskrit-first.
परम्परा-सन्धिः / Series links
| पूर्वं / Prior | अत्र / Adds | न पुनः / Does not repeat |
|---|---|---|
| व्ययसीमाधर्मः (१८ दिसं) | spend | not models |
| घटनास्रोतधर्मः | event source | history feed |
| प्रकाशनसदस्यता | pub/sub | projection path |
| अत्र | CQRS split | - |
ग्राह्य-त्याज्य-विवेकः / Keep and avoid
ग्राह्यम् / Keep
१. commands enforce invariants: write side
२. reads denormalize for questions: query side
३. publish lag SLO to clients: honesty
४. outbox or log then project: no dual write
५. split only under real pressure: complexity tax
त्याज्यम् / Avoid
- Two DBs no lag story
- Dual write both sides
- Shared mutable tables forever
- CQRS on a todo CRUD
अध्याय-योजना / Chapter plan
| प्रकरणम् | विषयः | छन्दः | श्लोकाः |
|---|---|---|---|
| १ | मङ्गलं बीजं च / Opening | अनुष्टुभ् | २ |
| २ | मूलतत्त्वानि / Core | अनुष्टुभ् | २ |
| ३ | मुख्यविधिः / Method | उपजाति | १ |
| ४ | रक्षा · विधिः / Guards | अनुष्टुभ् | २ |
| ५ | विवेक · सीमा / Judgment | अनुष्टुभ् | २ |
| ६ | पूर्वसन्धिः / Series links | उपजाति | १ |
| ७ | उपसंहारः / Close | अनुष्टुभ् | २ |
पारिभाषिक-कोशः / Glossary
| Modern English | संस्कृतम् | Note |
|---|---|---|
| CQRS | लेखनपृथक्करणम् | command/query split |
| command model | आज्ञामूर्तिः | write invariants |
| read model | प्रश्नमूर्तिः | query shape |
| projector | प्रक्षेपकः | async builder |
| lag SLO | विलम्बस्तरः | freshness promise |
श्लोकः १ (अनुष्टुभ्)
एकस्मिन् रूपे उभौ बलात् गुरुता जायते पथि ॥१॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
आज्ञामूर्तिः नियमं रक्षति प्रश्नमूर्तिः रूपं ।
एकस्मिन् रूपे उभौ बलात् गुरुता जायते पथि ॥१॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| आज्ञामूर्तिः | आज्ञामूर्तिः |
| नियमं | नियमं |
| रक्षति | रक्षति |
| प्रश्नमूर्तिः | प्रश्नमूर्तिः |
| रूपं | रूपं |
| एकस्मिन् | एकस्मिन् |
| रूपे | रूपे |
| उभौ | उभौ |
| बलात् | बलात् |
| गुरुता | गुरुता |
| जायते | जायते |
| पथि | पथि |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Commands guard rules; reads give shapes. Forcing both into one form fattens both.
Context / topic
why
वृत्तमिति: ८-८-८-८।
श्लोकः २ (अनुष्टुभ्)
मिश्राज्ञा दोषबीजं वर्धयति सेवारन्ध्रेषु ॥२॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
आज्ञा विशुद्धा लेखने तिष्ठतु पृष्ठपत्रं मा ।
मिश्राज्ञा दोषबीजं वर्धयति सेवारन्ध्रेषु ॥२॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| आज्ञा | आज्ञा |
| विशुद्धा | विशुद्धा |
| लेखने | लेखने |
| तिष्ठतु | तिष्ठतु |
| पृष्ठपत्रं | पृष्ठपत्रं |
| मा | मा |
| मिश्राज्ञा | मिश्राज्ञा |
| दोषबीजं | दोषबीजं |
| वर्धयति | वर्धयति |
| सेवारन्ध्रेषु | सेवारन्ध्रेषु |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Keep commands free of page DTO sludge.
Context / topic
commands
वृत्तमिति: ८-८-८-८।
श्लोकः ३ (उपजाति)
प्रश्नपथे लघु फलं देहि हि ।
आज्ञागर्भं मा पृच्छ पथे सदा ।
एवं पठनमार्गः लघुः स्यात् ॥३॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
प्रश्नमूर्तिं तनुं कुरु सम्यक् ।
प्रश्नपथे लघु फलं देहि हि ।
आज्ञागर्भं मा पृच्छ पथे सदा ।
एवं पठनमार्गः लघुः स्यात् ॥३॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| प्रश्नमूर्तिं | प्रश्नमूर्तिं |
| तनुं | तनुं |
| कुरु | कुरु |
| सम्यक् | सम्यक् |
| प्रश्नपथे | प्रश्नपथे |
| लघु | लघु |
| फलं | फलं |
| देहि | देहि |
| हि | हि |
| आज्ञागर्भं | आज्ञागर्भं |
| मा | मा |
| पृच्छ | पृच्छ |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
English sense
Thin denormalized reads; never query the write belly for lists.
Context / topic
reads
वृत्तमिति: एकादशाक्षराः पादाः।
श्लोकः ४ (अनुष्टुभ्)
अदृष्टविलम्बे ग्राहको भ्रान्तसत्यं पश्यति ॥४॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
विलम्बस्तरं सत्यं ब्रूहि मा गोपय कदाचन ।
अदृष्टविलम्बे ग्राहको भ्रान्तसत्यं पश्यति ॥४॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| विलम्बस्तरं | विलम्बस्तरं |
| सत्यं | सत्यं |
| ब्रूहि | ब्रूहि |
| मा | मा |
| गोपय | गोपय |
| कदाचन | कदाचन |
| अदृष्टविलम्बे | अदृष्टविलम्बे |
| ग्राहको | ग्राहको |
| भ्रान्तसत्यं | भ्रान्तसत्यं |
| पश्यति | पश्यति |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Publish how stale a read may be; hidden lag is a product lie.
Context / topic
lag
वृत्तमिति: ८-८-८-८।
श्लोकः ५ (अनुष्टुभ्)
द्विलिखने द्विसत्ये विरोधः शीघ्रं जायते ॥५॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
एकसत्यं पूर्वं बध्नीहि पश्चात् प्रक्षेपं कुरु ।
द्विलिखने द्विसत्ये विरोधः शीघ्रं जायते ॥५॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| एकसत्यं | एकसत्यं |
| पूर्वं | पूर्वं |
| बध्नीहि | बध्नीहि |
| पश्चात् | पश्चात् |
| प्रक्षेपं | प्रक्षेपं |
| कुरु | कुरु |
| द्विलिखने | द्विलिखने |
| द्विसत्ये | द्विसत्ये |
| विरोधः | विरोधः |
| शीघ्रं | शीघ्रं |
| जायते | जायते |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
One commit then project; dual writes birth two truths.
Context / topic
one truth
वृत्तमिति: ८-८-८-८।
श्लोकः ६ (अनुष्टुभ्)
असमानपुनःक्षेपे दोषसन्तानो वर्धते ॥६॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
प्रक्षेपकः पुनःक्षेपे समानफलं ददातु ।
असमानपुनःक्षेपे दोषसन्तानो वर्धते ॥६॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| प्रक्षेपकः | प्रक्षेपकः |
| पुनःक्षेपे | पुनःक्षेपे |
| समानफलं | समानफलं |
| ददातु | ददातु |
| असमानपुनःक्षेपे | असमानपुनःक्षेपे |
| दोषसन्तानो | दोषसन्तानो |
| वर्धते | वर्धते |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Projectors must be idempotent under replay and retry.
Context / topic
idempotent
वृत्तमिति: ८-८-८-८।
श्लोकः ७ (अनुष्टुभ्)
पृथग्वृद्ध्या उभयोः शीघ्रता सेवार्थाय ॥७॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
प्रश्नरूपं वर्धय काले आज्ञानियमान् मा भञ्जय ।
पृथग्वृद्ध्या उभयोः शीघ्रता सेवार्थाय ॥७॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| प्रश्नरूपं | प्रश्नरूपं |
| वर्धय | वर्धय |
| काले | काले |
| आज्ञानियमान् | आज्ञानियमान् |
| मा | मा |
| भञ्जय | भञ्जय |
| पृथग्वृद्ध्या | पृथग्वृद्ध्या |
| उभयोः | उभयोः |
| शीघ्रता | शीघ्रता |
| सेवार्थाय | सेवार्थाय |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Evolve query shapes without breaking write invariants.
Context / topic
evolve
वृत्तमिति: ८-८-८-८।
श्लोकः ८ (अनुष्टुभ्)
अकालभेदे श्रमः स्यात् फलं च मन्दम् पथि ॥८॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
लघुसेवायां मा शीघ्रं भिन्दि गुरुतां पूर्वं तोलय ।
अकालभेदे श्रमः स्यात् फलं च मन्दम् पथि ॥८॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| लघुसेवायां | लघुसेवायां |
| मा | मा |
| शीघ्रं | शीघ्रं |
| भिन्दि | भिन्दि |
| गुरुतां | गुरुतां |
| पूर्वं | पूर्वं |
| तोलय | तोलय |
| अकालभेदे | अकालभेदे |
| श्रमः | श्रमः |
| स्यात् | स्यात् |
| फलं | फलं |
| च | च |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Do not CQRS a toy; complexity needs load and team.
Context / topic
when not
वृत्तमिति: ८-८-८-८।
श्लोकः ९ (अनुष्टुभ्)
उभौ मित्राणि स्तः न तु एकं नाम सदा ॥९॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
घटनास्रोतः इतिहासकथा पृथक्करणं तु ।
उभौ मित्राणि स्तः न तु एकं नाम सदा ॥९॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| घटनास्रोतः | घटनास्रोतः |
| इतिहासकथा | इतिहासकथा |
| पृथक्करणं | पृथक्करणं |
| तु | तु |
| उभौ | उभौ |
| मित्राणि | मित्राणि |
| स्तः | स्तः |
| न | न |
| एकं | एकं |
| नाम | नाम |
| सदा | सदा |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Event sourcing is the diary; CQRS is the forked road. Friends not synonyms.
Context / topic
vs ES
वृत्तमिति: ८-८-८-८।
श्लोकः १० (उपजाति)
विलम्बं एकसत्यं च कुरु हि ।
पुनःसहं विवेकं च धरेत् ।
पञ्चाङ्गं लेखनधर्म उच्यते ॥१०॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
शुद्धाज्ञां तनुप्रश्नं च सम्यक् ।
विलम्बं एकसत्यं च कुरु हि ।
पुनःसहं विवेकं च धरेत् ।
पञ्चाङ्गं लेखनधर्म उच्यते ॥१०॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| शुद्धाज्ञां | शुद्धाज्ञां |
| तनुप्रश्नं | तनुप्रश्नं |
| च | च |
| सम्यक् | सम्यक् |
| विलम्बं | विलम्बं |
| एकसत्यं | एकसत्यं |
| कुरु | कुरु |
| हि | हि |
| पुनःसहं | पुनःसहं |
| विवेकं | विवेकं |
| धरेत् | धरेत् |
| पञ्चाङ्गं | पञ्चाङ्गं |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
English sense
Five limbs: pure commands, thin reads, lag SLO, one-truth project, wise split.
Context / topic
five
वृत्तमिति: एकादशाक्षराः पादाः।
श्लोकः ११ (अनुष्टुभ्)
मापितरूपं कर्मयोग्यं तन्त्रधर्मः स उच्यते ॥११॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
इति लेखनभेदसारः द्विमार्गसमन्वितः ।
मापितरूपं कर्मयोग्यं तन्त्रधर्मः स उच्यते ॥११॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| इति | इति |
| लेखनभेदसारः | लेखनभेदसारः |
| द्विमार्गसमन्वितः | द्विमार्गसमन्वितः |
| मापितरूपं | मापितरूपं |
| कर्मयोग्यं | कर्मयोग्यं |
| तन्त्रधर्मः | तन्त्रधर्मः |
| स | स |
| उच्यते | उच्यते |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Closing: measured dual paths when the load justifies them.
Context / topic
close
वृत्तमिति: ८-८-८-८।
श्लोकः १२ (अनुष्टुभ्)
द्विलिखं मा कुरु लेखनधर्मः स उच्यते ॥१२॥
पदच्छेदः · Word-for-word · English (minimizable)
पदच्छेदः
आज्ञां शुद्धां प्रश्नं तनुं विलम्बं ब्रूहि सत्यम् ।
द्विलिखं मा कुरु लेखनधर्मः स उच्यते ॥१२॥
Word-for-word
| संस्कृतपदम् | Word-for-word English |
|---|---|
| आज्ञां | आज्ञां |
| शुद्धां | शुद्धां |
| प्रश्नं | प्रश्नं |
| तनुं | तनुं |
| विलम्बं | विलम्बं |
| ब्रूहि | ब्रूहि |
| सत्यम् | सत्यम् |
| द्विलिखं | द्विलिखं |
| मा | मा |
| कुरु | कुरु |
| लेखनधर्मः | लेखनधर्मः |
| स | स |
Gloss table
| पदम् | अर्थः / sense |
|---|---|
| धर्मः | dharma |
| मितम् | measured |
English sense
Pure commands, thin reads, honest lag, no dual write.
Context / topic
seal
वृत्तमिति: ८-८-८-८।
श्लोकसूची / Verse index
१. आज्ञां शुद्धां कुरु
२. प्रश्नं तनुं कुरु
३. विलम्बं ब्रूहि
४. एकसत्यं पूर्वं बध्नीहि
५. प्रक्षेपं पुनःसहं कुरु
६. रूपं पृथग् वर्धय
७. लघुं मा भिन्दि
८. इतिहास मार्गं विविच्य
९. पञ्चाङ्गं स्मर
१०. द्विमार्गं मितं कुरु
११. सत्यं विभज
१२. धर्मं धारय
सन्दर्भाः / References
- CQRS and projection patterns
- Idempotent consumers
- Prior: spend 18 Dec