mdcontext 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/.changeset/config.json +9 -9
  2. package/.claude/settings.local.json +25 -0
  3. package/.github/workflows/claude-code-review.yml +44 -0
  4. package/.github/workflows/claude.yml +85 -0
  5. package/CONTRIBUTING.md +186 -0
  6. package/NOTES/NOTES +44 -0
  7. package/README.md +206 -3
  8. package/biome.json +1 -1
  9. package/dist/chunk-23UPXDNL.js +3044 -0
  10. package/dist/chunk-2W7MO2DL.js +1366 -0
  11. package/dist/chunk-3NUAZGMA.js +1689 -0
  12. package/dist/chunk-7TOWB2XB.js +366 -0
  13. package/dist/chunk-7XOTOADQ.js +3065 -0
  14. package/dist/chunk-AH2PDM2K.js +3042 -0
  15. package/dist/chunk-BNXWSZ63.js +3742 -0
  16. package/dist/chunk-BTL5DJVU.js +3222 -0
  17. package/dist/chunk-HDHYG7E4.js +104 -0
  18. package/dist/chunk-HLR4KZBP.js +3234 -0
  19. package/dist/chunk-IP3FRFEB.js +1045 -0
  20. package/dist/chunk-KHU56VDO.js +3042 -0
  21. package/dist/chunk-KRYIFLQR.js +85 -89
  22. package/dist/chunk-LBSDNLEM.js +287 -0
  23. package/dist/chunk-MNTQ7HCP.js +2643 -0
  24. package/dist/chunk-MUJELQQ6.js +1387 -0
  25. package/dist/chunk-MXJGMSLV.js +2199 -0
  26. package/dist/chunk-N6QJGC3Z.js +2636 -0
  27. package/dist/chunk-OBELGBPM.js +1713 -0
  28. package/dist/chunk-OT7R5XTA.js +3192 -0
  29. package/dist/chunk-P7X4RA2T.js +106 -0
  30. package/dist/chunk-PIDUQNC2.js +3185 -0
  31. package/dist/chunk-POGCDIH4.js +3187 -0
  32. package/dist/chunk-PSIEOQGZ.js +3043 -0
  33. package/dist/chunk-PVRT3IHA.js +3238 -0
  34. package/dist/chunk-QNN4TT23.js +1430 -0
  35. package/dist/chunk-RE3R45RJ.js +3042 -0
  36. package/dist/chunk-S7E6TFX6.js +718 -657
  37. package/dist/chunk-SG6GLU4U.js +1378 -0
  38. package/dist/chunk-SJCDV2ST.js +274 -0
  39. package/dist/chunk-SYE5XLF3.js +104 -0
  40. package/dist/chunk-T5VLYBZD.js +103 -0
  41. package/dist/chunk-TOQB7VWU.js +3238 -0
  42. package/dist/chunk-VFNMZ4ZQ.js +3228 -0
  43. package/dist/chunk-VVTGZNBT.js +1533 -1423
  44. package/dist/chunk-W7Q4RFEV.js +104 -0
  45. package/dist/chunk-XTYYVRLO.js +3190 -0
  46. package/dist/chunk-Y6MDYVJD.js +3063 -0
  47. package/dist/cli/main.js +4072 -629
  48. package/dist/index.d.ts +420 -33
  49. package/dist/index.js +8 -15
  50. package/dist/mcp/server.js +103 -7
  51. package/dist/schema-BAWSG7KY.js +22 -0
  52. package/dist/schema-E3QUPL26.js +20 -0
  53. package/dist/schema-EHL7WUT6.js +20 -0
  54. package/docs/019-USAGE.md +44 -5
  55. package/docs/020-current-implementation.md +8 -8
  56. package/docs/021-DOGFOODING-FINDINGS.md +1 -1
  57. package/docs/CONFIG.md +1123 -0
  58. package/docs/ERRORS.md +383 -0
  59. package/docs/summarization.md +320 -0
  60. package/justfile +40 -0
  61. package/package.json +39 -33
  62. package/research/INDEX.md +315 -0
  63. package/research/code-review/README.md +90 -0
  64. package/research/code-review/cli-error-handling-review.md +979 -0
  65. package/research/code-review/code-review-validation-report.md +464 -0
  66. package/research/code-review/main-ts-review.md +1128 -0
  67. package/research/config-docs/SUMMARY.md +357 -0
  68. package/research/config-docs/TEST-RESULTS.md +776 -0
  69. package/research/config-docs/TODO.md +542 -0
  70. package/research/config-docs/analysis.md +744 -0
  71. package/research/config-docs/fix-validation.md +502 -0
  72. package/research/config-docs/help-audit.md +264 -0
  73. package/research/config-docs/help-system-analysis.md +890 -0
  74. package/research/frontmatter/COMMENTS-ARE-SKIPPED.md +149 -0
  75. package/research/frontmatter/LLM-CODE-NAVIGATION.md +276 -0
  76. package/research/issue-review.md +603 -0
  77. package/research/llm-summarization/agent-cli-tools-2026.md +1082 -0
  78. package/research/llm-summarization/alternative-providers-2026.md +1428 -0
  79. package/research/llm-summarization/anthropic-2026.md +367 -0
  80. package/research/llm-summarization/claude-cli-integration.md +1706 -0
  81. package/research/llm-summarization/cli-integration-patterns.md +3155 -0
  82. package/research/llm-summarization/openai-2026.md +473 -0
  83. package/research/llm-summarization/openai-compatible-providers-2026.md +1022 -0
  84. package/research/llm-summarization/opencode-cli-integration.md +1552 -0
  85. package/research/llm-summarization/prompt-engineering-2026.md +1426 -0
  86. package/research/llm-summarization/prototype-results.md +56 -0
  87. package/research/llm-summarization/provider-switching-patterns-2026.md +2153 -0
  88. package/research/llm-summarization/typescript-llm-libraries-2026.md +2436 -0
  89. package/research/mdcontext-pudding/00-EXECUTIVE-SUMMARY.md +282 -0
  90. package/research/mdcontext-pudding/01-index-embed.md +956 -0
  91. package/research/mdcontext-pudding/02-search-COMMANDS.md +142 -0
  92. package/research/mdcontext-pudding/02-search-SUMMARY.md +146 -0
  93. package/research/mdcontext-pudding/02-search.md +970 -0
  94. package/research/mdcontext-pudding/03-context.md +779 -0
  95. package/research/mdcontext-pudding/04-navigation-and-analytics.md +803 -0
  96. package/research/mdcontext-pudding/04-tree.md +704 -0
  97. package/research/mdcontext-pudding/05-config.md +1038 -0
  98. package/research/mdcontext-pudding/06-links-summary.txt +87 -0
  99. package/research/mdcontext-pudding/06-links.md +679 -0
  100. package/research/mdcontext-pudding/07-stats.md +693 -0
  101. package/research/mdcontext-pudding/BUG-FIX-PLAN.md +388 -0
  102. package/research/mdcontext-pudding/P0-BUG-VALIDATION.md +167 -0
  103. package/research/mdcontext-pudding/README.md +168 -0
  104. package/research/mdcontext-pudding/TESTING-SUMMARY.md +128 -0
  105. package/research/research-quality-review.md +834 -0
  106. package/research/semantic-search/embedding-text-analysis.md +156 -0
  107. package/research/semantic-search/multi-word-failure-reproduction.md +171 -0
  108. package/research/semantic-search/query-processing-analysis.md +207 -0
  109. package/research/semantic-search/root-cause-and-solution.md +114 -0
  110. package/research/semantic-search/threshold-validation-report.md +69 -0
  111. package/research/semantic-search/vector-search-analysis.md +63 -0
  112. package/research/test-path-issues.md +276 -0
  113. package/review/ALP-76/1-error-type-design.md +962 -0
  114. package/review/ALP-76/2-error-handling-patterns.md +906 -0
  115. package/review/ALP-76/3-error-presentation.md +624 -0
  116. package/review/ALP-76/4-test-coverage.md +625 -0
  117. package/review/ALP-76/5-migration-completeness.md +440 -0
  118. package/review/ALP-76/6-effect-best-practices.md +755 -0
  119. package/scripts/apply-branch-protection.sh +47 -0
  120. package/scripts/branch-protection-templates.json +79 -0
  121. package/scripts/prototype-summarization.ts +346 -0
  122. package/scripts/rebuild-hnswlib.js +32 -37
  123. package/scripts/setup-branch-protection.sh +64 -0
  124. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/active-provider.json +7 -0
  125. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.json +541 -0
  126. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.meta.json +5 -0
  127. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/config.json +8 -0
  128. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
  129. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
  130. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/documents.json +60 -0
  131. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/links.json +13 -0
  132. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/sections.json +1197 -0
  133. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/configuration-management.md +99 -0
  134. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/distributed-systems.md +92 -0
  135. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/error-handling.md +78 -0
  136. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/failure-automation.md +55 -0
  137. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/job-context.md +69 -0
  138. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/process-orchestration.md +99 -0
  139. package/src/cli/argv-preprocessor.test.ts +2 -2
  140. package/src/cli/cli.test.ts +230 -33
  141. package/src/cli/commands/config-cmd.ts +642 -0
  142. package/src/cli/commands/context.ts +97 -9
  143. package/src/cli/commands/duplicates.ts +122 -0
  144. package/src/cli/commands/embeddings.ts +529 -0
  145. package/src/cli/commands/index-cmd.ts +210 -30
  146. package/src/cli/commands/index.ts +3 -0
  147. package/src/cli/commands/search.ts +894 -64
  148. package/src/cli/commands/stats.ts +3 -0
  149. package/src/cli/commands/tree.ts +26 -5
  150. package/src/cli/config-layer.ts +176 -0
  151. package/src/cli/error-handler.test.ts +235 -0
  152. package/src/cli/error-handler.ts +655 -0
  153. package/src/cli/flag-schemas.ts +66 -0
  154. package/src/cli/help.ts +209 -7
  155. package/src/cli/main.ts +348 -58
  156. package/src/cli/options.ts +10 -0
  157. package/src/cli/shared-error-handling.ts +199 -0
  158. package/src/cli/utils.ts +150 -17
  159. package/src/config/file-provider.test.ts +320 -0
  160. package/src/config/file-provider.ts +273 -0
  161. package/src/config/index.ts +72 -0
  162. package/src/config/integration.test.ts +667 -0
  163. package/src/config/precedence.test.ts +277 -0
  164. package/src/config/precedence.ts +451 -0
  165. package/src/config/schema.test.ts +414 -0
  166. package/src/config/schema.ts +603 -0
  167. package/src/config/service.test.ts +320 -0
  168. package/src/config/service.ts +243 -0
  169. package/src/config/testing.test.ts +264 -0
  170. package/src/config/testing.ts +110 -0
  171. package/src/core/types.ts +6 -33
  172. package/src/duplicates/detector.test.ts +183 -0
  173. package/src/duplicates/detector.ts +414 -0
  174. package/src/duplicates/index.ts +18 -0
  175. package/src/embeddings/embedding-namespace.test.ts +300 -0
  176. package/src/embeddings/embedding-namespace.ts +947 -0
  177. package/src/embeddings/heading-boost.test.ts +222 -0
  178. package/src/embeddings/hnsw-build-options.test.ts +198 -0
  179. package/src/embeddings/hyde.test.ts +272 -0
  180. package/src/embeddings/hyde.ts +264 -0
  181. package/src/embeddings/index.ts +2 -0
  182. package/src/embeddings/openai-provider.ts +332 -83
  183. package/src/embeddings/pricing.json +22 -0
  184. package/src/embeddings/provider-constants.ts +204 -0
  185. package/src/embeddings/provider-errors.test.ts +967 -0
  186. package/src/embeddings/provider-errors.ts +565 -0
  187. package/src/embeddings/provider-factory.test.ts +240 -0
  188. package/src/embeddings/provider-factory.ts +225 -0
  189. package/src/embeddings/provider-integration.test.ts +788 -0
  190. package/src/embeddings/query-preprocessing.test.ts +187 -0
  191. package/src/embeddings/semantic-search-threshold.test.ts +508 -0
  192. package/src/embeddings/semantic-search.ts +780 -93
  193. package/src/embeddings/types.ts +293 -16
  194. package/src/embeddings/vector-store.ts +486 -77
  195. package/src/embeddings/voyage-provider.ts +313 -0
  196. package/src/errors/errors.test.ts +845 -0
  197. package/src/errors/index.ts +533 -0
  198. package/src/index/ignore-patterns.test.ts +354 -0
  199. package/src/index/ignore-patterns.ts +305 -0
  200. package/src/index/indexer.ts +286 -48
  201. package/src/index/storage.ts +94 -30
  202. package/src/index/types.ts +40 -2
  203. package/src/index/watcher.ts +67 -9
  204. package/src/index.ts +22 -0
  205. package/src/integration/search-keyword.test.ts +678 -0
  206. package/src/mcp/server.ts +135 -6
  207. package/src/parser/parser.ts +18 -19
  208. package/src/parser/section-filter.test.ts +277 -0
  209. package/src/parser/section-filter.ts +125 -3
  210. package/src/search/__tests__/hybrid-search.test.ts +650 -0
  211. package/src/search/bm25-store.ts +366 -0
  212. package/src/search/cross-encoder.test.ts +253 -0
  213. package/src/search/cross-encoder.ts +406 -0
  214. package/src/search/fuzzy-search.test.ts +419 -0
  215. package/src/search/fuzzy-search.ts +273 -0
  216. package/src/search/hybrid-search.ts +448 -0
  217. package/src/search/path-matcher.test.ts +276 -0
  218. package/src/search/path-matcher.ts +33 -0
  219. package/src/search/searcher.test.ts +99 -1
  220. package/src/search/searcher.ts +189 -67
  221. package/src/search/wink-bm25.d.ts +30 -0
  222. package/src/summarization/cli-providers/claude.ts +202 -0
  223. package/src/summarization/cli-providers/detection.test.ts +273 -0
  224. package/src/summarization/cli-providers/detection.ts +118 -0
  225. package/src/summarization/cli-providers/index.ts +8 -0
  226. package/src/summarization/cost.test.ts +139 -0
  227. package/src/summarization/cost.ts +102 -0
  228. package/src/summarization/error-handler.test.ts +127 -0
  229. package/src/summarization/error-handler.ts +111 -0
  230. package/src/summarization/index.ts +102 -0
  231. package/src/summarization/pipeline.test.ts +498 -0
  232. package/src/summarization/pipeline.ts +231 -0
  233. package/src/summarization/prompts.test.ts +269 -0
  234. package/src/summarization/prompts.ts +133 -0
  235. package/src/summarization/provider-factory.test.ts +396 -0
  236. package/src/summarization/provider-factory.ts +178 -0
  237. package/src/summarization/types.ts +184 -0
  238. package/src/summarize/summarizer.ts +104 -35
  239. package/src/types/huggingface-transformers.d.ts +66 -0
  240. package/tests/fixtures/cli/.mdcontext/active-provider.json +7 -0
  241. package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
  242. package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
  243. package/tests/fixtures/cli/.mdcontext/indexes/documents.json +4 -4
  244. package/tests/fixtures/cli/.mdcontext/indexes/sections.json +14 -0
  245. package/tests/integration/embed-index.test.ts +712 -0
  246. package/tests/integration/search-context.test.ts +469 -0
  247. package/tests/integration/search-semantic.test.ts +522 -0
  248. package/vitest.config.ts +1 -6
  249. package/AGENTS.md +0 -46
  250. package/tests/fixtures/cli/.mdcontext/vectors.bin +0 -0
  251. package/tests/fixtures/cli/.mdcontext/vectors.meta.json +0 -1264
@@ -0,0 +1,1197 @@
1
+ {
2
+ "version": 1,
3
+ "sections": {
4
+ "7af8c1a9f31c-configuration-management": {
5
+ "id": "7af8c1a9f31c-configuration-management",
6
+ "documentId": "7af8c1a9f31c",
7
+ "documentPath": "configuration-management.md",
8
+ "heading": "Configuration Management",
9
+ "level": 1,
10
+ "startLine": 1,
11
+ "endLine": 1,
12
+ "tokenCount": 9,
13
+ "hasCode": false,
14
+ "hasList": false,
15
+ "hasTable": false
16
+ },
17
+ "7af8c1a9f31c-overview": {
18
+ "id": "7af8c1a9f31c-overview",
19
+ "documentId": "7af8c1a9f31c",
20
+ "documentPath": "configuration-management.md",
21
+ "heading": "Overview",
22
+ "level": 2,
23
+ "startLine": 3,
24
+ "endLine": 5,
25
+ "tokenCount": 73,
26
+ "hasCode": false,
27
+ "hasList": false,
28
+ "hasTable": false
29
+ },
30
+ "7af8c1a9f31c-core-principles": {
31
+ "id": "7af8c1a9f31c-core-principles",
32
+ "documentId": "7af8c1a9f31c",
33
+ "documentPath": "configuration-management.md",
34
+ "heading": "Core Principles",
35
+ "level": 2,
36
+ "startLine": 7,
37
+ "endLine": 7,
38
+ "tokenCount": 7,
39
+ "hasCode": false,
40
+ "hasList": false,
41
+ "hasTable": false
42
+ },
43
+ "7af8c1a9f31c-infrastructure-as-code": {
44
+ "id": "7af8c1a9f31c-infrastructure-as-code",
45
+ "documentId": "7af8c1a9f31c",
46
+ "documentPath": "configuration-management.md",
47
+ "heading": "Infrastructure as Code",
48
+ "level": 3,
49
+ "startLine": 9,
50
+ "endLine": 15,
51
+ "tokenCount": 65,
52
+ "hasCode": false,
53
+ "hasList": true,
54
+ "hasTable": false
55
+ },
56
+ "7af8c1a9f31c-separation-of-concerns": {
57
+ "id": "7af8c1a9f31c-separation-of-concerns",
58
+ "documentId": "7af8c1a9f31c",
59
+ "documentPath": "configuration-management.md",
60
+ "heading": "Separation of Concerns",
61
+ "level": 3,
62
+ "startLine": 17,
63
+ "endLine": 22,
64
+ "tokenCount": 64,
65
+ "hasCode": false,
66
+ "hasList": true,
67
+ "hasTable": false
68
+ },
69
+ "7af8c1a9f31c-configuration-sources": {
70
+ "id": "7af8c1a9f31c-configuration-sources",
71
+ "documentId": "7af8c1a9f31c",
72
+ "documentPath": "configuration-management.md",
73
+ "heading": "Configuration Sources",
74
+ "level": 2,
75
+ "startLine": 24,
76
+ "endLine": 24,
77
+ "tokenCount": 9,
78
+ "hasCode": false,
79
+ "hasList": false,
80
+ "hasTable": false
81
+ },
82
+ "7af8c1a9f31c-hierarchy-of-configuration": {
83
+ "id": "7af8c1a9f31c-hierarchy-of-configuration",
84
+ "documentId": "7af8c1a9f31c",
85
+ "documentPath": "configuration-management.md",
86
+ "heading": "Hierarchy of Configuration",
87
+ "level": 3,
88
+ "startLine": 26,
89
+ "endLine": 32,
90
+ "tokenCount": 71,
91
+ "hasCode": false,
92
+ "hasList": true,
93
+ "hasTable": false
94
+ },
95
+ "7af8c1a9f31c-configuration-file-formats": {
96
+ "id": "7af8c1a9f31c-configuration-file-formats",
97
+ "documentId": "7af8c1a9f31c",
98
+ "documentPath": "configuration-management.md",
99
+ "heading": "Configuration File Formats",
100
+ "level": 3,
101
+ "startLine": 34,
102
+ "endLine": 40,
103
+ "tokenCount": 93,
104
+ "hasCode": false,
105
+ "hasList": true,
106
+ "hasTable": false
107
+ },
108
+ "7af8c1a9f31c-implementation": {
109
+ "id": "7af8c1a9f31c-implementation",
110
+ "documentId": "7af8c1a9f31c",
111
+ "documentPath": "configuration-management.md",
112
+ "heading": "Implementation",
113
+ "level": 2,
114
+ "startLine": 42,
115
+ "endLine": 65,
116
+ "tokenCount": 241,
117
+ "hasCode": true,
118
+ "hasList": false,
119
+ "hasTable": false
120
+ },
121
+ "7af8c1a9f31c-best-practices": {
122
+ "id": "7af8c1a9f31c-best-practices",
123
+ "documentId": "7af8c1a9f31c",
124
+ "documentPath": "configuration-management.md",
125
+ "heading": "Best Practices",
126
+ "level": 2,
127
+ "startLine": 67,
128
+ "endLine": 73,
129
+ "tokenCount": 125,
130
+ "hasCode": false,
131
+ "hasList": true,
132
+ "hasTable": false
133
+ },
134
+ "7af8c1a9f31c-common-patterns": {
135
+ "id": "7af8c1a9f31c-common-patterns",
136
+ "documentId": "7af8c1a9f31c",
137
+ "documentPath": "configuration-management.md",
138
+ "heading": "Common Patterns",
139
+ "level": 2,
140
+ "startLine": 75,
141
+ "endLine": 75,
142
+ "tokenCount": 7,
143
+ "hasCode": false,
144
+ "hasList": false,
145
+ "hasTable": false
146
+ },
147
+ "7af8c1a9f31c-feature-flags": {
148
+ "id": "7af8c1a9f31c-feature-flags",
149
+ "documentId": "7af8c1a9f31c",
150
+ "documentPath": "configuration-management.md",
151
+ "heading": "Feature Flags",
152
+ "level": 3,
153
+ "startLine": 77,
154
+ "endLine": 85,
155
+ "tokenCount": 66,
156
+ "hasCode": true,
157
+ "hasList": false,
158
+ "hasTable": false
159
+ },
160
+ "7af8c1a9f31c-environment-specific-configuration": {
161
+ "id": "7af8c1a9f31c-environment-specific-configuration",
162
+ "documentId": "7af8c1a9f31c",
163
+ "documentPath": "configuration-management.md",
164
+ "heading": "Environment-Specific Configuration",
165
+ "level": 3,
166
+ "startLine": 87,
167
+ "endLine": 99,
168
+ "tokenCount": 97,
169
+ "hasCode": true,
170
+ "hasList": false,
171
+ "hasTable": false
172
+ },
173
+ "c7a87467b534-distributed-systems-architecture": {
174
+ "id": "c7a87467b534-distributed-systems-architecture",
175
+ "documentId": "c7a87467b534",
176
+ "documentPath": "distributed-systems.md",
177
+ "heading": "Distributed Systems Architecture",
178
+ "level": 1,
179
+ "startLine": 1,
180
+ "endLine": 1,
181
+ "tokenCount": 12,
182
+ "hasCode": false,
183
+ "hasList": false,
184
+ "hasTable": false
185
+ },
186
+ "c7a87467b534-what-are-distributed-systems": {
187
+ "id": "c7a87467b534-what-are-distributed-systems",
188
+ "documentId": "c7a87467b534",
189
+ "documentPath": "distributed-systems.md",
190
+ "heading": "What Are Distributed Systems?",
191
+ "level": 2,
192
+ "startLine": 3,
193
+ "endLine": 5,
194
+ "tokenCount": 77,
195
+ "hasCode": false,
196
+ "hasList": false,
197
+ "hasTable": false
198
+ },
199
+ "c7a87467b534-key-challenges": {
200
+ "id": "c7a87467b534-key-challenges",
201
+ "documentId": "c7a87467b534",
202
+ "documentPath": "distributed-systems.md",
203
+ "heading": "Key Challenges",
204
+ "level": 2,
205
+ "startLine": 7,
206
+ "endLine": 7,
207
+ "tokenCount": 7,
208
+ "hasCode": false,
209
+ "hasList": false,
210
+ "hasTable": false
211
+ },
212
+ "c7a87467b534-network-partitions": {
213
+ "id": "c7a87467b534-network-partitions",
214
+ "documentId": "c7a87467b534",
215
+ "documentPath": "distributed-systems.md",
216
+ "heading": "Network Partitions",
217
+ "level": 3,
218
+ "startLine": 9,
219
+ "endLine": 14,
220
+ "tokenCount": 43,
221
+ "hasCode": false,
222
+ "hasList": true,
223
+ "hasTable": false
224
+ },
225
+ "c7a87467b534-consistency-vs-availability": {
226
+ "id": "c7a87467b534-consistency-vs-availability",
227
+ "documentId": "c7a87467b534",
228
+ "documentPath": "distributed-systems.md",
229
+ "heading": "Consistency vs Availability",
230
+ "level": 3,
231
+ "startLine": 16,
232
+ "endLine": 21,
233
+ "tokenCount": 92,
234
+ "hasCode": false,
235
+ "hasList": true,
236
+ "hasTable": false
237
+ },
238
+ "c7a87467b534-clock-synchronization": {
239
+ "id": "c7a87467b534-clock-synchronization",
240
+ "documentId": "c7a87467b534",
241
+ "documentPath": "distributed-systems.md",
242
+ "heading": "Clock Synchronization",
243
+ "level": 3,
244
+ "startLine": 23,
245
+ "endLine": 28,
246
+ "tokenCount": 54,
247
+ "hasCode": false,
248
+ "hasList": true,
249
+ "hasTable": false
250
+ },
251
+ "c7a87467b534-design-patterns": {
252
+ "id": "c7a87467b534-design-patterns",
253
+ "documentId": "c7a87467b534",
254
+ "documentPath": "distributed-systems.md",
255
+ "heading": "Design Patterns",
256
+ "level": 2,
257
+ "startLine": 30,
258
+ "endLine": 30,
259
+ "tokenCount": 7,
260
+ "hasCode": false,
261
+ "hasList": false,
262
+ "hasTable": false
263
+ },
264
+ "c7a87467b534-service-discovery": {
265
+ "id": "c7a87467b534-service-discovery",
266
+ "documentId": "c7a87467b534",
267
+ "documentPath": "distributed-systems.md",
268
+ "heading": "Service Discovery",
269
+ "level": 3,
270
+ "startLine": 32,
271
+ "endLine": 37,
272
+ "tokenCount": 55,
273
+ "hasCode": false,
274
+ "hasList": true,
275
+ "hasTable": false
276
+ },
277
+ "c7a87467b534-circuit-breakers": {
278
+ "id": "c7a87467b534-circuit-breakers",
279
+ "documentId": "c7a87467b534",
280
+ "documentPath": "distributed-systems.md",
281
+ "heading": "Circuit Breakers",
282
+ "level": 3,
283
+ "startLine": 39,
284
+ "endLine": 63,
285
+ "tokenCount": 224,
286
+ "hasCode": true,
287
+ "hasList": false,
288
+ "hasTable": false
289
+ },
290
+ "c7a87467b534-event-sourcing": {
291
+ "id": "c7a87467b534-event-sourcing",
292
+ "documentId": "c7a87467b534",
293
+ "documentPath": "distributed-systems.md",
294
+ "heading": "Event Sourcing",
295
+ "level": 3,
296
+ "startLine": 65,
297
+ "endLine": 70,
298
+ "tokenCount": 47,
299
+ "hasCode": false,
300
+ "hasList": true,
301
+ "hasTable": false
302
+ },
303
+ "c7a87467b534-communication-patterns": {
304
+ "id": "c7a87467b534-communication-patterns",
305
+ "documentId": "c7a87467b534",
306
+ "documentPath": "distributed-systems.md",
307
+ "heading": "Communication Patterns",
308
+ "level": 2,
309
+ "startLine": 72,
310
+ "endLine": 72,
311
+ "tokenCount": 9,
312
+ "hasCode": false,
313
+ "hasList": false,
314
+ "hasTable": false
315
+ },
316
+ "c7a87467b534-synchronous-request-response": {
317
+ "id": "c7a87467b534-synchronous-request-response",
318
+ "documentId": "c7a87467b534",
319
+ "documentPath": "distributed-systems.md",
320
+ "heading": "Synchronous (Request-Response)",
321
+ "level": 3,
322
+ "startLine": 74,
323
+ "endLine": 78,
324
+ "tokenCount": 33,
325
+ "hasCode": false,
326
+ "hasList": true,
327
+ "hasTable": false
328
+ },
329
+ "c7a87467b534-asynchronous-message-based": {
330
+ "id": "c7a87467b534-asynchronous-message-based",
331
+ "documentId": "c7a87467b534",
332
+ "documentPath": "distributed-systems.md",
333
+ "heading": "Asynchronous (Message-Based)",
334
+ "level": 3,
335
+ "startLine": 80,
336
+ "endLine": 84,
337
+ "tokenCount": 36,
338
+ "hasCode": false,
339
+ "hasList": true,
340
+ "hasTable": false
341
+ },
342
+ "c7a87467b534-best-practices": {
343
+ "id": "c7a87467b534-best-practices",
344
+ "documentId": "c7a87467b534",
345
+ "documentPath": "distributed-systems.md",
346
+ "heading": "Best Practices",
347
+ "level": 2,
348
+ "startLine": 86,
349
+ "endLine": 92,
350
+ "tokenCount": 125,
351
+ "hasCode": false,
352
+ "hasList": true,
353
+ "hasTable": false
354
+ },
355
+ "94adf3c4c1b9-error-handling-patterns": {
356
+ "id": "94adf3c4c1b9-error-handling-patterns",
357
+ "documentId": "94adf3c4c1b9",
358
+ "documentPath": "error-handling.md",
359
+ "heading": "Error Handling Patterns",
360
+ "level": 1,
361
+ "startLine": 1,
362
+ "endLine": 1,
363
+ "tokenCount": 9,
364
+ "hasCode": false,
365
+ "hasList": false,
366
+ "hasTable": false
367
+ },
368
+ "94adf3c4c1b9-introduction-to-error-handling": {
369
+ "id": "94adf3c4c1b9-introduction-to-error-handling",
370
+ "documentId": "94adf3c4c1b9",
371
+ "documentPath": "error-handling.md",
372
+ "heading": "Introduction to Error Handling",
373
+ "level": 2,
374
+ "startLine": 3,
375
+ "endLine": 5,
376
+ "tokenCount": 65,
377
+ "hasCode": false,
378
+ "hasList": false,
379
+ "hasTable": false
380
+ },
381
+ "94adf3c4c1b9-error-types": {
382
+ "id": "94adf3c4c1b9-error-types",
383
+ "documentId": "94adf3c4c1b9",
384
+ "documentPath": "error-handling.md",
385
+ "heading": "Error Types",
386
+ "level": 2,
387
+ "startLine": 7,
388
+ "endLine": 7,
389
+ "tokenCount": 6,
390
+ "hasCode": false,
391
+ "hasList": false,
392
+ "hasTable": false
393
+ },
394
+ "94adf3c4c1b9-operational-errors": {
395
+ "id": "94adf3c4c1b9-operational-errors",
396
+ "documentId": "94adf3c4c1b9",
397
+ "documentPath": "error-handling.md",
398
+ "heading": "Operational Errors",
399
+ "level": 3,
400
+ "startLine": 9,
401
+ "endLine": 15,
402
+ "tokenCount": 59,
403
+ "hasCode": false,
404
+ "hasList": true,
405
+ "hasTable": false
406
+ },
407
+ "94adf3c4c1b9-programming-errors": {
408
+ "id": "94adf3c4c1b9-programming-errors",
409
+ "documentId": "94adf3c4c1b9",
410
+ "documentPath": "error-handling.md",
411
+ "heading": "Programming Errors",
412
+ "level": 3,
413
+ "startLine": 17,
414
+ "endLine": 23,
415
+ "tokenCount": 48,
416
+ "hasCode": false,
417
+ "hasList": true,
418
+ "hasTable": false
419
+ },
420
+ "94adf3c4c1b9-handling-strategies": {
421
+ "id": "94adf3c4c1b9-handling-strategies",
422
+ "documentId": "94adf3c4c1b9",
423
+ "documentPath": "error-handling.md",
424
+ "heading": "Handling Strategies",
425
+ "level": 2,
426
+ "startLine": 25,
427
+ "endLine": 25,
428
+ "tokenCount": 9,
429
+ "hasCode": false,
430
+ "hasList": false,
431
+ "hasTable": false
432
+ },
433
+ "94adf3c4c1b9-try-catch-blocks": {
434
+ "id": "94adf3c4c1b9-try-catch-blocks",
435
+ "documentId": "94adf3c4c1b9",
436
+ "documentPath": "error-handling.md",
437
+ "heading": "Try-Catch Blocks",
438
+ "level": 3,
439
+ "startLine": 27,
440
+ "endLine": 42,
441
+ "tokenCount": 147,
442
+ "hasCode": true,
443
+ "hasList": false,
444
+ "hasTable": false
445
+ },
446
+ "94adf3c4c1b9-result-types": {
447
+ "id": "94adf3c4c1b9-result-types",
448
+ "documentId": "94adf3c4c1b9",
449
+ "documentPath": "error-handling.md",
450
+ "heading": "Result Types",
451
+ "level": 3,
452
+ "startLine": 44,
453
+ "endLine": 56,
454
+ "tokenCount": 126,
455
+ "hasCode": true,
456
+ "hasList": false,
457
+ "hasTable": false
458
+ },
459
+ "94adf3c4c1b9-error-boundaries": {
460
+ "id": "94adf3c4c1b9-error-boundaries",
461
+ "documentId": "94adf3c4c1b9",
462
+ "documentPath": "error-handling.md",
463
+ "heading": "Error Boundaries",
464
+ "level": 3,
465
+ "startLine": 58,
466
+ "endLine": 63,
467
+ "tokenCount": 62,
468
+ "hasCode": false,
469
+ "hasList": true,
470
+ "hasTable": false
471
+ },
472
+ "94adf3c4c1b9-best-practices": {
473
+ "id": "94adf3c4c1b9-best-practices",
474
+ "documentId": "94adf3c4c1b9",
475
+ "documentPath": "error-handling.md",
476
+ "heading": "Best Practices",
477
+ "level": 2,
478
+ "startLine": 65,
479
+ "endLine": 71,
480
+ "tokenCount": 141,
481
+ "hasCode": false,
482
+ "hasList": true,
483
+ "hasTable": false
484
+ },
485
+ "94adf3c4c1b9-error-handling-anti-patterns": {
486
+ "id": "94adf3c4c1b9-error-handling-anti-patterns",
487
+ "documentId": "94adf3c4c1b9",
488
+ "documentPath": "error-handling.md",
489
+ "heading": "Error Handling Anti-Patterns",
490
+ "level": 2,
491
+ "startLine": 73,
492
+ "endLine": 78,
493
+ "tokenCount": 55,
494
+ "hasCode": false,
495
+ "hasList": true,
496
+ "hasTable": false
497
+ },
498
+ "bd3d01a0b08c-failure-automation": {
499
+ "id": "bd3d01a0b08c-failure-automation",
500
+ "documentId": "bd3d01a0b08c",
501
+ "documentPath": "failure-automation.md",
502
+ "heading": "Failure Automation",
503
+ "level": 1,
504
+ "startLine": 1,
505
+ "endLine": 1,
506
+ "tokenCount": 7,
507
+ "hasCode": false,
508
+ "hasList": false,
509
+ "hasTable": false
510
+ },
511
+ "bd3d01a0b08c-overview": {
512
+ "id": "bd3d01a0b08c-overview",
513
+ "documentId": "bd3d01a0b08c",
514
+ "documentPath": "failure-automation.md",
515
+ "heading": "Overview",
516
+ "level": 2,
517
+ "startLine": 3,
518
+ "endLine": 5,
519
+ "tokenCount": 81,
520
+ "hasCode": false,
521
+ "hasList": false,
522
+ "hasTable": false
523
+ },
524
+ "bd3d01a0b08c-core-concepts": {
525
+ "id": "bd3d01a0b08c-core-concepts",
526
+ "documentId": "bd3d01a0b08c",
527
+ "documentPath": "failure-automation.md",
528
+ "heading": "Core Concepts",
529
+ "level": 2,
530
+ "startLine": 7,
531
+ "endLine": 7,
532
+ "tokenCount": 7,
533
+ "hasCode": false,
534
+ "hasList": false,
535
+ "hasTable": false
536
+ },
537
+ "bd3d01a0b08c-automated-failure-detection": {
538
+ "id": "bd3d01a0b08c-automated-failure-detection",
539
+ "documentId": "bd3d01a0b08c",
540
+ "documentPath": "failure-automation.md",
541
+ "heading": "Automated Failure Detection",
542
+ "level": 3,
543
+ "startLine": 9,
544
+ "endLine": 11,
545
+ "tokenCount": 64,
546
+ "hasCode": false,
547
+ "hasList": false,
548
+ "hasTable": false
549
+ },
550
+ "bd3d01a0b08c-automatic-recovery": {
551
+ "id": "bd3d01a0b08c-automatic-recovery",
552
+ "documentId": "bd3d01a0b08c",
553
+ "documentPath": "failure-automation.md",
554
+ "heading": "Automatic Recovery",
555
+ "level": 3,
556
+ "startLine": 13,
557
+ "endLine": 19,
558
+ "tokenCount": 66,
559
+ "hasCode": false,
560
+ "hasList": true,
561
+ "hasTable": false
562
+ },
563
+ "bd3d01a0b08c-failure-isolation": {
564
+ "id": "bd3d01a0b08c-failure-isolation",
565
+ "documentId": "bd3d01a0b08c",
566
+ "documentPath": "failure-automation.md",
567
+ "heading": "Failure Isolation",
568
+ "level": 3,
569
+ "startLine": 21,
570
+ "endLine": 23,
571
+ "tokenCount": 57,
572
+ "hasCode": false,
573
+ "hasList": false,
574
+ "hasTable": false
575
+ },
576
+ "bd3d01a0b08c-best-practices": {
577
+ "id": "bd3d01a0b08c-best-practices",
578
+ "documentId": "bd3d01a0b08c",
579
+ "documentPath": "failure-automation.md",
580
+ "heading": "Best Practices",
581
+ "level": 2,
582
+ "startLine": 25,
583
+ "endLine": 30,
584
+ "tokenCount": 125,
585
+ "hasCode": false,
586
+ "hasList": true,
587
+ "hasTable": false
588
+ },
589
+ "bd3d01a0b08c-implementation-example": {
590
+ "id": "bd3d01a0b08c-implementation-example",
591
+ "documentId": "bd3d01a0b08c",
592
+ "documentPath": "failure-automation.md",
593
+ "heading": "Implementation Example",
594
+ "level": 2,
595
+ "startLine": 32,
596
+ "endLine": 48,
597
+ "tokenCount": 161,
598
+ "hasCode": true,
599
+ "hasList": false,
600
+ "hasTable": false
601
+ },
602
+ "bd3d01a0b08c-related-topics": {
603
+ "id": "bd3d01a0b08c-related-topics",
604
+ "documentId": "bd3d01a0b08c",
605
+ "documentPath": "failure-automation.md",
606
+ "heading": "Related Topics",
607
+ "level": 2,
608
+ "startLine": 50,
609
+ "endLine": 55,
610
+ "tokenCount": 52,
611
+ "hasCode": false,
612
+ "hasList": true,
613
+ "hasTable": false
614
+ },
615
+ "f686caa5e0ff-job-context": {
616
+ "id": "f686caa5e0ff-job-context",
617
+ "documentId": "f686caa5e0ff",
618
+ "documentPath": "job-context.md",
619
+ "heading": "Job Context",
620
+ "level": 1,
621
+ "startLine": 1,
622
+ "endLine": 1,
623
+ "tokenCount": 5,
624
+ "hasCode": false,
625
+ "hasList": false,
626
+ "hasTable": false
627
+ },
628
+ "f686caa5e0ff-what-is-job-context": {
629
+ "id": "f686caa5e0ff-what-is-job-context",
630
+ "documentId": "f686caa5e0ff",
631
+ "documentPath": "job-context.md",
632
+ "heading": "What is Job Context?",
633
+ "level": 2,
634
+ "startLine": 3,
635
+ "endLine": 5,
636
+ "tokenCount": 78,
637
+ "hasCode": false,
638
+ "hasList": false,
639
+ "hasTable": false
640
+ },
641
+ "f686caa5e0ff-components-of-job-context": {
642
+ "id": "f686caa5e0ff-components-of-job-context",
643
+ "documentId": "f686caa5e0ff",
644
+ "documentPath": "job-context.md",
645
+ "heading": "Components of Job Context",
646
+ "level": 2,
647
+ "startLine": 7,
648
+ "endLine": 7,
649
+ "tokenCount": 10,
650
+ "hasCode": false,
651
+ "hasList": false,
652
+ "hasTable": false
653
+ },
654
+ "f686caa5e0ff-runtime-environment": {
655
+ "id": "f686caa5e0ff-runtime-environment",
656
+ "documentId": "f686caa5e0ff",
657
+ "documentPath": "job-context.md",
658
+ "heading": "Runtime Environment",
659
+ "level": 3,
660
+ "startLine": 9,
661
+ "endLine": 15,
662
+ "tokenCount": 69,
663
+ "hasCode": false,
664
+ "hasList": true,
665
+ "hasTable": false
666
+ },
667
+ "f686caa5e0ff-execution-metadata": {
668
+ "id": "f686caa5e0ff-execution-metadata",
669
+ "documentId": "f686caa5e0ff",
670
+ "documentPath": "job-context.md",
671
+ "heading": "Execution Metadata",
672
+ "level": 3,
673
+ "startLine": 17,
674
+ "endLine": 23,
675
+ "tokenCount": 65,
676
+ "hasCode": false,
677
+ "hasList": true,
678
+ "hasTable": false
679
+ },
680
+ "f686caa5e0ff-state-information": {
681
+ "id": "f686caa5e0ff-state-information",
682
+ "documentId": "f686caa5e0ff",
683
+ "documentPath": "job-context.md",
684
+ "heading": "State Information",
685
+ "level": 3,
686
+ "startLine": 25,
687
+ "endLine": 31,
688
+ "tokenCount": 59,
689
+ "hasCode": false,
690
+ "hasList": true,
691
+ "hasTable": false
692
+ },
693
+ "f686caa5e0ff-passing-context-between-jobs": {
694
+ "id": "f686caa5e0ff-passing-context-between-jobs",
695
+ "documentId": "f686caa5e0ff",
696
+ "documentPath": "job-context.md",
697
+ "heading": "Passing Context Between Jobs",
698
+ "level": 2,
699
+ "startLine": 33,
700
+ "endLine": 55,
701
+ "tokenCount": 223,
702
+ "hasCode": true,
703
+ "hasList": false,
704
+ "hasTable": false
705
+ },
706
+ "f686caa5e0ff-best-practices": {
707
+ "id": "f686caa5e0ff-best-practices",
708
+ "documentId": "f686caa5e0ff",
709
+ "documentPath": "job-context.md",
710
+ "heading": "Best Practices",
711
+ "level": 2,
712
+ "startLine": 57,
713
+ "endLine": 62,
714
+ "tokenCount": 111,
715
+ "hasCode": false,
716
+ "hasList": true,
717
+ "hasTable": false
718
+ },
719
+ "f686caa5e0ff-use-cases": {
720
+ "id": "f686caa5e0ff-use-cases",
721
+ "documentId": "f686caa5e0ff",
722
+ "documentPath": "job-context.md",
723
+ "heading": "Use Cases",
724
+ "level": 2,
725
+ "startLine": 64,
726
+ "endLine": 69,
727
+ "tokenCount": 71,
728
+ "hasCode": false,
729
+ "hasList": true,
730
+ "hasTable": false
731
+ },
732
+ "0daacc6a0c05-process-orchestration": {
733
+ "id": "0daacc6a0c05-process-orchestration",
734
+ "documentId": "0daacc6a0c05",
735
+ "documentPath": "process-orchestration.md",
736
+ "heading": "Process Orchestration",
737
+ "level": 1,
738
+ "startLine": 1,
739
+ "endLine": 1,
740
+ "tokenCount": 8,
741
+ "hasCode": false,
742
+ "hasList": false,
743
+ "hasTable": false
744
+ },
745
+ "0daacc6a0c05-introduction": {
746
+ "id": "0daacc6a0c05-introduction",
747
+ "documentId": "0daacc6a0c05",
748
+ "documentPath": "process-orchestration.md",
749
+ "heading": "Introduction",
750
+ "level": 2,
751
+ "startLine": 3,
752
+ "endLine": 5,
753
+ "tokenCount": 70,
754
+ "hasCode": false,
755
+ "hasList": false,
756
+ "hasTable": false
757
+ },
758
+ "0daacc6a0c05-orchestration-vs-choreography": {
759
+ "id": "0daacc6a0c05-orchestration-vs-choreography",
760
+ "documentId": "0daacc6a0c05",
761
+ "documentPath": "process-orchestration.md",
762
+ "heading": "Orchestration vs Choreography",
763
+ "level": 2,
764
+ "startLine": 7,
765
+ "endLine": 7,
766
+ "tokenCount": 12,
767
+ "hasCode": false,
768
+ "hasList": false,
769
+ "hasTable": false
770
+ },
771
+ "0daacc6a0c05-orchestration-central-control": {
772
+ "id": "0daacc6a0c05-orchestration-central-control",
773
+ "documentId": "0daacc6a0c05",
774
+ "documentPath": "process-orchestration.md",
775
+ "heading": "Orchestration (Central Control)",
776
+ "level": 3,
777
+ "startLine": 9,
778
+ "endLine": 15,
779
+ "tokenCount": 68,
780
+ "hasCode": false,
781
+ "hasList": true,
782
+ "hasTable": false
783
+ },
784
+ "0daacc6a0c05-choreography-distributed": {
785
+ "id": "0daacc6a0c05-choreography-distributed",
786
+ "documentId": "0daacc6a0c05",
787
+ "documentPath": "process-orchestration.md",
788
+ "heading": "Choreography (Distributed)",
789
+ "level": 3,
790
+ "startLine": 17,
791
+ "endLine": 23,
792
+ "tokenCount": 65,
793
+ "hasCode": false,
794
+ "hasList": true,
795
+ "hasTable": false
796
+ },
797
+ "0daacc6a0c05-orchestration-patterns": {
798
+ "id": "0daacc6a0c05-orchestration-patterns",
799
+ "documentId": "0daacc6a0c05",
800
+ "documentPath": "process-orchestration.md",
801
+ "heading": "Orchestration Patterns",
802
+ "level": 2,
803
+ "startLine": 25,
804
+ "endLine": 25,
805
+ "tokenCount": 9,
806
+ "hasCode": false,
807
+ "hasList": false,
808
+ "hasTable": false
809
+ },
810
+ "0daacc6a0c05-sequential-execution": {
811
+ "id": "0daacc6a0c05-sequential-execution",
812
+ "documentId": "0daacc6a0c05",
813
+ "documentPath": "process-orchestration.md",
814
+ "heading": "Sequential Execution",
815
+ "level": 3,
816
+ "startLine": 27,
817
+ "endLine": 39,
818
+ "tokenCount": 139,
819
+ "hasCode": true,
820
+ "hasList": false,
821
+ "hasTable": false
822
+ },
823
+ "0daacc6a0c05-parallel-execution": {
824
+ "id": "0daacc6a0c05-parallel-execution",
825
+ "documentId": "0daacc6a0c05",
826
+ "documentPath": "process-orchestration.md",
827
+ "heading": "Parallel Execution",
828
+ "level": 3,
829
+ "startLine": 41,
830
+ "endLine": 55,
831
+ "tokenCount": 176,
832
+ "hasCode": true,
833
+ "hasList": false,
834
+ "hasTable": false
835
+ },
836
+ "0daacc6a0c05-saga-pattern": {
837
+ "id": "0daacc6a0c05-saga-pattern",
838
+ "documentId": "0daacc6a0c05",
839
+ "documentPath": "process-orchestration.md",
840
+ "heading": "Saga Pattern",
841
+ "level": 3,
842
+ "startLine": 57,
843
+ "endLine": 83,
844
+ "tokenCount": 299,
845
+ "hasCode": true,
846
+ "hasList": false,
847
+ "hasTable": false
848
+ },
849
+ "0daacc6a0c05-workflow-engines": {
850
+ "id": "0daacc6a0c05-workflow-engines",
851
+ "documentId": "0daacc6a0c05",
852
+ "documentPath": "process-orchestration.md",
853
+ "heading": "Workflow Engines",
854
+ "level": 2,
855
+ "startLine": 85,
856
+ "endLine": 91,
857
+ "tokenCount": 89,
858
+ "hasCode": false,
859
+ "hasList": true,
860
+ "hasTable": false
861
+ },
862
+ "0daacc6a0c05-best-practices": {
863
+ "id": "0daacc6a0c05-best-practices",
864
+ "documentId": "0daacc6a0c05",
865
+ "documentPath": "process-orchestration.md",
866
+ "heading": "Best Practices",
867
+ "level": 2,
868
+ "startLine": 93,
869
+ "endLine": 99,
870
+ "tokenCount": 119,
871
+ "hasCode": false,
872
+ "hasList": true,
873
+ "hasTable": false
874
+ }
875
+ },
876
+ "byHeading": {
877
+ "configuration management": [
878
+ "7af8c1a9f31c-configuration-management",
879
+ "7af8c1a9f31c-configuration-management"
880
+ ],
881
+ "overview": [
882
+ "7af8c1a9f31c-overview",
883
+ "bd3d01a0b08c-overview",
884
+ "7af8c1a9f31c-overview",
885
+ "bd3d01a0b08c-overview"
886
+ ],
887
+ "core principles": [
888
+ "7af8c1a9f31c-core-principles",
889
+ "7af8c1a9f31c-core-principles"
890
+ ],
891
+ "infrastructure as code": [
892
+ "7af8c1a9f31c-infrastructure-as-code",
893
+ "7af8c1a9f31c-infrastructure-as-code"
894
+ ],
895
+ "separation of concerns": [
896
+ "7af8c1a9f31c-separation-of-concerns",
897
+ "7af8c1a9f31c-separation-of-concerns"
898
+ ],
899
+ "configuration sources": [
900
+ "7af8c1a9f31c-configuration-sources",
901
+ "7af8c1a9f31c-configuration-sources"
902
+ ],
903
+ "hierarchy of configuration": [
904
+ "7af8c1a9f31c-hierarchy-of-configuration",
905
+ "7af8c1a9f31c-hierarchy-of-configuration"
906
+ ],
907
+ "configuration file formats": [
908
+ "7af8c1a9f31c-configuration-file-formats",
909
+ "7af8c1a9f31c-configuration-file-formats"
910
+ ],
911
+ "implementation": [
912
+ "7af8c1a9f31c-implementation",
913
+ "7af8c1a9f31c-implementation"
914
+ ],
915
+ "best practices": [
916
+ "7af8c1a9f31c-best-practices",
917
+ "c7a87467b534-best-practices",
918
+ "94adf3c4c1b9-best-practices",
919
+ "bd3d01a0b08c-best-practices",
920
+ "f686caa5e0ff-best-practices",
921
+ "0daacc6a0c05-best-practices",
922
+ "7af8c1a9f31c-best-practices",
923
+ "c7a87467b534-best-practices",
924
+ "94adf3c4c1b9-best-practices",
925
+ "bd3d01a0b08c-best-practices",
926
+ "f686caa5e0ff-best-practices",
927
+ "0daacc6a0c05-best-practices"
928
+ ],
929
+ "common patterns": [
930
+ "7af8c1a9f31c-common-patterns",
931
+ "7af8c1a9f31c-common-patterns"
932
+ ],
933
+ "feature flags": [
934
+ "7af8c1a9f31c-feature-flags",
935
+ "7af8c1a9f31c-feature-flags"
936
+ ],
937
+ "environment-specific configuration": [
938
+ "7af8c1a9f31c-environment-specific-configuration",
939
+ "7af8c1a9f31c-environment-specific-configuration"
940
+ ],
941
+ "distributed systems architecture": [
942
+ "c7a87467b534-distributed-systems-architecture",
943
+ "c7a87467b534-distributed-systems-architecture"
944
+ ],
945
+ "what are distributed systems?": [
946
+ "c7a87467b534-what-are-distributed-systems",
947
+ "c7a87467b534-what-are-distributed-systems"
948
+ ],
949
+ "key challenges": [
950
+ "c7a87467b534-key-challenges",
951
+ "c7a87467b534-key-challenges"
952
+ ],
953
+ "network partitions": [
954
+ "c7a87467b534-network-partitions",
955
+ "c7a87467b534-network-partitions"
956
+ ],
957
+ "consistency vs availability": [
958
+ "c7a87467b534-consistency-vs-availability",
959
+ "c7a87467b534-consistency-vs-availability"
960
+ ],
961
+ "clock synchronization": [
962
+ "c7a87467b534-clock-synchronization",
963
+ "c7a87467b534-clock-synchronization"
964
+ ],
965
+ "design patterns": [
966
+ "c7a87467b534-design-patterns",
967
+ "c7a87467b534-design-patterns"
968
+ ],
969
+ "service discovery": [
970
+ "c7a87467b534-service-discovery",
971
+ "c7a87467b534-service-discovery"
972
+ ],
973
+ "circuit breakers": [
974
+ "c7a87467b534-circuit-breakers",
975
+ "c7a87467b534-circuit-breakers"
976
+ ],
977
+ "event sourcing": [
978
+ "c7a87467b534-event-sourcing",
979
+ "c7a87467b534-event-sourcing"
980
+ ],
981
+ "communication patterns": [
982
+ "c7a87467b534-communication-patterns",
983
+ "c7a87467b534-communication-patterns"
984
+ ],
985
+ "synchronous (request-response)": [
986
+ "c7a87467b534-synchronous-request-response",
987
+ "c7a87467b534-synchronous-request-response"
988
+ ],
989
+ "asynchronous (message-based)": [
990
+ "c7a87467b534-asynchronous-message-based",
991
+ "c7a87467b534-asynchronous-message-based"
992
+ ],
993
+ "error handling patterns": [
994
+ "94adf3c4c1b9-error-handling-patterns",
995
+ "94adf3c4c1b9-error-handling-patterns"
996
+ ],
997
+ "introduction to error handling": [
998
+ "94adf3c4c1b9-introduction-to-error-handling",
999
+ "94adf3c4c1b9-introduction-to-error-handling"
1000
+ ],
1001
+ "error types": ["94adf3c4c1b9-error-types", "94adf3c4c1b9-error-types"],
1002
+ "operational errors": [
1003
+ "94adf3c4c1b9-operational-errors",
1004
+ "94adf3c4c1b9-operational-errors"
1005
+ ],
1006
+ "programming errors": [
1007
+ "94adf3c4c1b9-programming-errors",
1008
+ "94adf3c4c1b9-programming-errors"
1009
+ ],
1010
+ "handling strategies": [
1011
+ "94adf3c4c1b9-handling-strategies",
1012
+ "94adf3c4c1b9-handling-strategies"
1013
+ ],
1014
+ "try-catch blocks": [
1015
+ "94adf3c4c1b9-try-catch-blocks",
1016
+ "94adf3c4c1b9-try-catch-blocks"
1017
+ ],
1018
+ "result types": ["94adf3c4c1b9-result-types", "94adf3c4c1b9-result-types"],
1019
+ "error boundaries": [
1020
+ "94adf3c4c1b9-error-boundaries",
1021
+ "94adf3c4c1b9-error-boundaries"
1022
+ ],
1023
+ "error handling anti-patterns": [
1024
+ "94adf3c4c1b9-error-handling-anti-patterns",
1025
+ "94adf3c4c1b9-error-handling-anti-patterns"
1026
+ ],
1027
+ "failure automation": [
1028
+ "bd3d01a0b08c-failure-automation",
1029
+ "bd3d01a0b08c-failure-automation"
1030
+ ],
1031
+ "core concepts": [
1032
+ "bd3d01a0b08c-core-concepts",
1033
+ "bd3d01a0b08c-core-concepts"
1034
+ ],
1035
+ "automated failure detection": [
1036
+ "bd3d01a0b08c-automated-failure-detection",
1037
+ "bd3d01a0b08c-automated-failure-detection"
1038
+ ],
1039
+ "automatic recovery": [
1040
+ "bd3d01a0b08c-automatic-recovery",
1041
+ "bd3d01a0b08c-automatic-recovery"
1042
+ ],
1043
+ "failure isolation": [
1044
+ "bd3d01a0b08c-failure-isolation",
1045
+ "bd3d01a0b08c-failure-isolation"
1046
+ ],
1047
+ "implementation example": [
1048
+ "bd3d01a0b08c-implementation-example",
1049
+ "bd3d01a0b08c-implementation-example"
1050
+ ],
1051
+ "related topics": [
1052
+ "bd3d01a0b08c-related-topics",
1053
+ "bd3d01a0b08c-related-topics"
1054
+ ],
1055
+ "job context": ["f686caa5e0ff-job-context", "f686caa5e0ff-job-context"],
1056
+ "what is job context?": [
1057
+ "f686caa5e0ff-what-is-job-context",
1058
+ "f686caa5e0ff-what-is-job-context"
1059
+ ],
1060
+ "components of job context": [
1061
+ "f686caa5e0ff-components-of-job-context",
1062
+ "f686caa5e0ff-components-of-job-context"
1063
+ ],
1064
+ "runtime environment": [
1065
+ "f686caa5e0ff-runtime-environment",
1066
+ "f686caa5e0ff-runtime-environment"
1067
+ ],
1068
+ "execution metadata": [
1069
+ "f686caa5e0ff-execution-metadata",
1070
+ "f686caa5e0ff-execution-metadata"
1071
+ ],
1072
+ "state information": [
1073
+ "f686caa5e0ff-state-information",
1074
+ "f686caa5e0ff-state-information"
1075
+ ],
1076
+ "passing context between jobs": [
1077
+ "f686caa5e0ff-passing-context-between-jobs",
1078
+ "f686caa5e0ff-passing-context-between-jobs"
1079
+ ],
1080
+ "use cases": ["f686caa5e0ff-use-cases", "f686caa5e0ff-use-cases"],
1081
+ "process orchestration": [
1082
+ "0daacc6a0c05-process-orchestration",
1083
+ "0daacc6a0c05-process-orchestration"
1084
+ ],
1085
+ "introduction": ["0daacc6a0c05-introduction", "0daacc6a0c05-introduction"],
1086
+ "orchestration vs choreography": [
1087
+ "0daacc6a0c05-orchestration-vs-choreography",
1088
+ "0daacc6a0c05-orchestration-vs-choreography"
1089
+ ],
1090
+ "orchestration (central control)": [
1091
+ "0daacc6a0c05-orchestration-central-control",
1092
+ "0daacc6a0c05-orchestration-central-control"
1093
+ ],
1094
+ "choreography (distributed)": [
1095
+ "0daacc6a0c05-choreography-distributed",
1096
+ "0daacc6a0c05-choreography-distributed"
1097
+ ],
1098
+ "orchestration patterns": [
1099
+ "0daacc6a0c05-orchestration-patterns",
1100
+ "0daacc6a0c05-orchestration-patterns"
1101
+ ],
1102
+ "sequential execution": [
1103
+ "0daacc6a0c05-sequential-execution",
1104
+ "0daacc6a0c05-sequential-execution"
1105
+ ],
1106
+ "parallel execution": [
1107
+ "0daacc6a0c05-parallel-execution",
1108
+ "0daacc6a0c05-parallel-execution"
1109
+ ],
1110
+ "saga pattern": ["0daacc6a0c05-saga-pattern", "0daacc6a0c05-saga-pattern"],
1111
+ "workflow engines": [
1112
+ "0daacc6a0c05-workflow-engines",
1113
+ "0daacc6a0c05-workflow-engines"
1114
+ ]
1115
+ },
1116
+ "byDocument": {
1117
+ "7af8c1a9f31c": [
1118
+ "7af8c1a9f31c-configuration-management",
1119
+ "7af8c1a9f31c-overview",
1120
+ "7af8c1a9f31c-core-principles",
1121
+ "7af8c1a9f31c-infrastructure-as-code",
1122
+ "7af8c1a9f31c-separation-of-concerns",
1123
+ "7af8c1a9f31c-configuration-sources",
1124
+ "7af8c1a9f31c-hierarchy-of-configuration",
1125
+ "7af8c1a9f31c-configuration-file-formats",
1126
+ "7af8c1a9f31c-implementation",
1127
+ "7af8c1a9f31c-best-practices",
1128
+ "7af8c1a9f31c-common-patterns",
1129
+ "7af8c1a9f31c-feature-flags",
1130
+ "7af8c1a9f31c-environment-specific-configuration"
1131
+ ],
1132
+ "c7a87467b534": [
1133
+ "c7a87467b534-distributed-systems-architecture",
1134
+ "c7a87467b534-what-are-distributed-systems",
1135
+ "c7a87467b534-key-challenges",
1136
+ "c7a87467b534-network-partitions",
1137
+ "c7a87467b534-consistency-vs-availability",
1138
+ "c7a87467b534-clock-synchronization",
1139
+ "c7a87467b534-design-patterns",
1140
+ "c7a87467b534-service-discovery",
1141
+ "c7a87467b534-circuit-breakers",
1142
+ "c7a87467b534-event-sourcing",
1143
+ "c7a87467b534-communication-patterns",
1144
+ "c7a87467b534-synchronous-request-response",
1145
+ "c7a87467b534-asynchronous-message-based",
1146
+ "c7a87467b534-best-practices"
1147
+ ],
1148
+ "94adf3c4c1b9": [
1149
+ "94adf3c4c1b9-error-handling-patterns",
1150
+ "94adf3c4c1b9-introduction-to-error-handling",
1151
+ "94adf3c4c1b9-error-types",
1152
+ "94adf3c4c1b9-operational-errors",
1153
+ "94adf3c4c1b9-programming-errors",
1154
+ "94adf3c4c1b9-handling-strategies",
1155
+ "94adf3c4c1b9-try-catch-blocks",
1156
+ "94adf3c4c1b9-result-types",
1157
+ "94adf3c4c1b9-error-boundaries",
1158
+ "94adf3c4c1b9-best-practices",
1159
+ "94adf3c4c1b9-error-handling-anti-patterns"
1160
+ ],
1161
+ "bd3d01a0b08c": [
1162
+ "bd3d01a0b08c-failure-automation",
1163
+ "bd3d01a0b08c-overview",
1164
+ "bd3d01a0b08c-core-concepts",
1165
+ "bd3d01a0b08c-automated-failure-detection",
1166
+ "bd3d01a0b08c-automatic-recovery",
1167
+ "bd3d01a0b08c-failure-isolation",
1168
+ "bd3d01a0b08c-best-practices",
1169
+ "bd3d01a0b08c-implementation-example",
1170
+ "bd3d01a0b08c-related-topics"
1171
+ ],
1172
+ "f686caa5e0ff": [
1173
+ "f686caa5e0ff-job-context",
1174
+ "f686caa5e0ff-what-is-job-context",
1175
+ "f686caa5e0ff-components-of-job-context",
1176
+ "f686caa5e0ff-runtime-environment",
1177
+ "f686caa5e0ff-execution-metadata",
1178
+ "f686caa5e0ff-state-information",
1179
+ "f686caa5e0ff-passing-context-between-jobs",
1180
+ "f686caa5e0ff-best-practices",
1181
+ "f686caa5e0ff-use-cases"
1182
+ ],
1183
+ "0daacc6a0c05": [
1184
+ "0daacc6a0c05-process-orchestration",
1185
+ "0daacc6a0c05-introduction",
1186
+ "0daacc6a0c05-orchestration-vs-choreography",
1187
+ "0daacc6a0c05-orchestration-central-control",
1188
+ "0daacc6a0c05-choreography-distributed",
1189
+ "0daacc6a0c05-orchestration-patterns",
1190
+ "0daacc6a0c05-sequential-execution",
1191
+ "0daacc6a0c05-parallel-execution",
1192
+ "0daacc6a0c05-saga-pattern",
1193
+ "0daacc6a0c05-workflow-engines",
1194
+ "0daacc6a0c05-best-practices"
1195
+ ]
1196
+ }
1197
+ }