specweave 0.18.1 → 0.20.1

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 (389) hide show
  1. package/CLAUDE.md +229 -1817
  2. package/README.md +68 -0
  3. package/bin/specweave.js +62 -6
  4. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +1 -1
  5. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +3 -0
  6. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +1 -1
  7. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts +21 -0
  8. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts.map +1 -0
  9. package/dist/plugins/specweave/lib/hooks/update-ac-status.js +162 -0
  10. package/dist/plugins/specweave/lib/hooks/update-ac-status.js.map +1 -0
  11. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts.map +1 -1
  12. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js +65 -6
  13. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js.map +1 -1
  14. package/dist/plugins/specweave-github/lib/completion-calculator.d.ts +112 -0
  15. package/dist/plugins/specweave-github/lib/completion-calculator.d.ts.map +1 -0
  16. package/dist/plugins/specweave-github/lib/completion-calculator.js +301 -0
  17. package/dist/plugins/specweave-github/lib/completion-calculator.js.map +1 -0
  18. package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts +3 -3
  19. package/dist/plugins/specweave-github/lib/duplicate-detector.js +3 -3
  20. package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts +7 -0
  21. package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +1 -1
  22. package/dist/plugins/specweave-github/lib/epic-content-builder.js +42 -0
  23. package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +1 -1
  24. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +14 -0
  25. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
  26. package/dist/plugins/specweave-github/lib/github-client-v2.js +51 -0
  27. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
  28. package/dist/plugins/specweave-github/lib/github-epic-sync.js +1 -1
  29. package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +1 -1
  30. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +87 -0
  31. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -0
  32. package/dist/plugins/specweave-github/lib/github-feature-sync.js +412 -0
  33. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -0
  34. package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts.map +1 -1
  35. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js +64 -13
  36. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js.map +1 -1
  37. package/dist/plugins/specweave-github/lib/progress-comment-builder.d.ts +78 -0
  38. package/dist/plugins/specweave-github/lib/progress-comment-builder.d.ts.map +1 -0
  39. package/dist/plugins/specweave-github/lib/progress-comment-builder.js +237 -0
  40. package/dist/plugins/specweave-github/lib/progress-comment-builder.js.map +1 -0
  41. package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts +97 -0
  42. package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts.map +1 -0
  43. package/dist/plugins/specweave-github/lib/user-story-content-builder.js +301 -0
  44. package/dist/plugins/specweave-github/lib/user-story-content-builder.js.map +1 -0
  45. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts +83 -0
  46. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -0
  47. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +386 -0
  48. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -0
  49. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts +8 -6
  50. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +1 -1
  51. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +78 -117
  52. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +1 -1
  53. package/dist/src/cli/commands/import-docs.js +4 -4
  54. package/dist/src/cli/commands/import-docs.js.map +1 -1
  55. package/dist/src/cli/commands/init-multiproject.d.ts.map +1 -1
  56. package/dist/src/cli/commands/init-multiproject.js +17 -18
  57. package/dist/src/cli/commands/init-multiproject.js.map +1 -1
  58. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +1 -1
  59. package/dist/src/cli/commands/migrate-to-multiproject.js +8 -4
  60. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
  61. package/dist/src/cli/commands/switch-project.d.ts.map +1 -1
  62. package/dist/src/cli/commands/switch-project.js +9 -26
  63. package/dist/src/cli/commands/switch-project.js.map +1 -1
  64. package/dist/src/cli/commands/sync-spec-content.js +3 -0
  65. package/dist/src/cli/commands/sync-spec-content.js.map +1 -1
  66. package/dist/src/core/deduplication/command-deduplicator.d.ts +166 -0
  67. package/dist/src/core/deduplication/command-deduplicator.d.ts.map +1 -0
  68. package/dist/src/core/deduplication/command-deduplicator.js +254 -0
  69. package/dist/src/core/deduplication/command-deduplicator.js.map +1 -0
  70. package/dist/src/core/increment/active-increment-manager.d.ts +42 -15
  71. package/dist/src/core/increment/active-increment-manager.d.ts.map +1 -1
  72. package/dist/src/core/increment/active-increment-manager.js +113 -46
  73. package/dist/src/core/increment/active-increment-manager.js.map +1 -1
  74. package/dist/src/core/increment/conflict-resolver.d.ts +40 -0
  75. package/dist/src/core/increment/conflict-resolver.d.ts.map +1 -0
  76. package/dist/src/core/increment/conflict-resolver.js +219 -0
  77. package/dist/src/core/increment/conflict-resolver.js.map +1 -0
  78. package/dist/src/core/increment/discipline-checker.d.ts.map +1 -1
  79. package/dist/src/core/increment/discipline-checker.js +7 -1
  80. package/dist/src/core/increment/discipline-checker.js.map +1 -1
  81. package/dist/src/core/increment/duplicate-detector.d.ts +52 -0
  82. package/dist/src/core/increment/duplicate-detector.d.ts.map +1 -0
  83. package/dist/src/core/increment/duplicate-detector.js +276 -0
  84. package/dist/src/core/increment/duplicate-detector.js.map +1 -0
  85. package/dist/src/core/increment/increment-archiver.d.ts +90 -0
  86. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -0
  87. package/dist/src/core/increment/increment-archiver.js +368 -0
  88. package/dist/src/core/increment/increment-archiver.js.map +1 -0
  89. package/dist/src/core/increment/increment-reopener.d.ts +165 -0
  90. package/dist/src/core/increment/increment-reopener.d.ts.map +1 -0
  91. package/dist/src/core/increment/increment-reopener.js +390 -0
  92. package/dist/src/core/increment/increment-reopener.js.map +1 -0
  93. package/dist/src/core/increment/metadata-manager.d.ts +26 -1
  94. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  95. package/dist/src/core/increment/metadata-manager.js +143 -5
  96. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  97. package/dist/src/core/increment/recent-work-scanner.d.ts +121 -0
  98. package/dist/src/core/increment/recent-work-scanner.d.ts.map +1 -0
  99. package/dist/src/core/increment/recent-work-scanner.js +303 -0
  100. package/dist/src/core/increment/recent-work-scanner.js.map +1 -0
  101. package/dist/src/core/increment/types.d.ts +1 -0
  102. package/dist/src/core/increment/types.d.ts.map +1 -1
  103. package/dist/src/core/increment-utils.d.ts +112 -0
  104. package/dist/src/core/increment-utils.d.ts.map +1 -0
  105. package/dist/src/core/increment-utils.js +210 -0
  106. package/dist/src/core/increment-utils.js.map +1 -0
  107. package/dist/src/core/living-docs/ac-project-specific-generator.d.ts +65 -0
  108. package/dist/src/core/living-docs/ac-project-specific-generator.d.ts.map +1 -0
  109. package/dist/src/core/living-docs/ac-project-specific-generator.js +175 -0
  110. package/dist/src/core/living-docs/ac-project-specific-generator.js.map +1 -0
  111. package/dist/src/core/living-docs/feature-archiver.d.ts +130 -0
  112. package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -0
  113. package/dist/src/core/living-docs/feature-archiver.js +549 -0
  114. package/dist/src/core/living-docs/feature-archiver.js.map +1 -0
  115. package/dist/src/core/living-docs/feature-id-manager.d.ts +81 -0
  116. package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -0
  117. package/dist/src/core/living-docs/feature-id-manager.js +339 -0
  118. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -0
  119. package/dist/src/core/living-docs/hierarchy-mapper.d.ts +144 -83
  120. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  121. package/dist/src/core/living-docs/hierarchy-mapper.js +488 -270
  122. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  123. package/dist/src/core/living-docs/index.d.ts +6 -0
  124. package/dist/src/core/living-docs/index.d.ts.map +1 -1
  125. package/dist/src/core/living-docs/index.js +6 -0
  126. package/dist/src/core/living-docs/index.js.map +1 -1
  127. package/dist/src/core/living-docs/project-detector.d.ts +6 -0
  128. package/dist/src/core/living-docs/project-detector.d.ts.map +1 -1
  129. package/dist/src/core/living-docs/project-detector.js +35 -1
  130. package/dist/src/core/living-docs/project-detector.js.map +1 -1
  131. package/dist/src/core/living-docs/spec-distributor.d.ts +100 -26
  132. package/dist/src/core/living-docs/spec-distributor.d.ts.map +1 -1
  133. package/dist/src/core/living-docs/spec-distributor.js +1275 -258
  134. package/dist/src/core/living-docs/spec-distributor.js.map +1 -1
  135. package/dist/src/core/living-docs/task-project-specific-generator.d.ts +109 -0
  136. package/dist/src/core/living-docs/task-project-specific-generator.d.ts.map +1 -0
  137. package/dist/src/core/living-docs/task-project-specific-generator.js +221 -0
  138. package/dist/src/core/living-docs/task-project-specific-generator.js.map +1 -0
  139. package/dist/src/core/living-docs/types.d.ts +143 -0
  140. package/dist/src/core/living-docs/types.d.ts.map +1 -1
  141. package/dist/src/core/project-manager.d.ts +2 -17
  142. package/dist/src/core/project-manager.d.ts.map +1 -1
  143. package/dist/src/core/project-manager.js +68 -48
  144. package/dist/src/core/project-manager.js.map +1 -1
  145. package/dist/src/core/spec-content-sync.d.ts +1 -1
  146. package/dist/src/core/spec-content-sync.d.ts.map +1 -1
  147. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -1
  148. package/dist/src/core/sync/enhanced-content-builder.js +2 -1
  149. package/dist/src/core/sync/enhanced-content-builder.js.map +1 -1
  150. package/dist/src/core/sync/performance-optimizer.d.ts +153 -0
  151. package/dist/src/core/sync/performance-optimizer.d.ts.map +1 -0
  152. package/dist/src/core/sync/performance-optimizer.js +220 -0
  153. package/dist/src/core/sync/performance-optimizer.js.map +1 -0
  154. package/dist/src/core/sync/retry-handler.d.ts +98 -0
  155. package/dist/src/core/sync/retry-handler.d.ts.map +1 -0
  156. package/dist/src/core/sync/retry-handler.js +196 -0
  157. package/dist/src/core/sync/retry-handler.js.map +1 -0
  158. package/dist/src/core/types/config.d.ts +94 -0
  159. package/dist/src/core/types/config.d.ts.map +1 -1
  160. package/dist/src/core/types/config.js +16 -0
  161. package/dist/src/core/types/config.js.map +1 -1
  162. package/dist/src/core/types/increment-metadata.d.ts +6 -0
  163. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  164. package/dist/src/core/types/increment-metadata.js +10 -1
  165. package/dist/src/core/types/increment-metadata.js.map +1 -1
  166. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
  167. package/dist/src/integrations/jira/jira-incremental-mapper.js +4 -8
  168. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
  169. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  170. package/dist/src/integrations/jira/jira-mapper.js +4 -8
  171. package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
  172. package/package.json +1 -1
  173. package/plugins/specweave/COMMANDS.md +13 -4
  174. package/plugins/specweave/commands/specweave-abandon.md +22 -20
  175. package/plugins/specweave/commands/specweave-archive-features.md +121 -0
  176. package/plugins/specweave/commands/specweave-archive-increments.md +82 -0
  177. package/plugins/specweave/commands/specweave-archive.md +363 -0
  178. package/plugins/specweave/commands/specweave-backlog.md +211 -0
  179. package/plugins/specweave/commands/specweave-fix-duplicates.md +517 -0
  180. package/plugins/specweave/commands/specweave-increment.md +4 -3
  181. package/plugins/specweave/commands/specweave-progress.md +176 -27
  182. package/plugins/specweave/commands/specweave-reopen.md +391 -0
  183. package/plugins/specweave/commands/specweave-restore-feature.md +90 -0
  184. package/plugins/specweave/commands/specweave-restore.md +309 -0
  185. package/plugins/specweave/commands/specweave-resume.md +51 -23
  186. package/plugins/specweave/commands/specweave-status.md +41 -7
  187. package/plugins/specweave/commands/specweave-sync-specs.md +425 -0
  188. package/plugins/specweave/hooks/hooks.json +4 -0
  189. package/plugins/specweave/hooks/lib/sync-spec-content.sh +2 -2
  190. package/plugins/specweave/hooks/post-task-completion.sh +39 -0
  191. package/plugins/specweave/hooks/pre-command-deduplication.sh +83 -0
  192. package/plugins/specweave/hooks/user-prompt-submit.sh +1 -1
  193. package/plugins/specweave/lib/hooks/sync-living-docs.js +2 -0
  194. package/plugins/specweave/lib/hooks/sync-living-docs.ts +4 -0
  195. package/plugins/specweave/lib/hooks/update-ac-status.js +102 -0
  196. package/plugins/specweave/lib/hooks/update-ac-status.ts +192 -0
  197. package/plugins/specweave/skills/archive-increments/SKILL.md +198 -0
  198. package/plugins/specweave/skills/increment-planner/scripts/feature-utils.js +14 -0
  199. package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +244 -0
  200. package/plugins/specweave-ado/lib/ado-spec-content-sync.js +49 -5
  201. package/plugins/specweave-ado/lib/ado-spec-content-sync.ts +72 -6
  202. package/plugins/specweave-confluent/.claude-plugin/plugin.json +23 -0
  203. package/plugins/specweave-confluent/README.md +375 -0
  204. package/plugins/specweave-confluent/agents/confluent-architect/AGENT.md +306 -0
  205. package/plugins/specweave-confluent/skills/confluent-kafka-connect/SKILL.md +453 -0
  206. package/plugins/specweave-confluent/skills/confluent-ksqldb/SKILL.md +470 -0
  207. package/plugins/specweave-confluent/skills/confluent-schema-registry/SKILL.md +316 -0
  208. package/plugins/specweave-github/agents/github-task-splitter/AGENT.md +2 -2
  209. package/plugins/specweave-github/agents/user-story-updater/AGENT.md +148 -0
  210. package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +1 -1
  211. package/plugins/specweave-github/commands/specweave-github-update-user-story.md +156 -0
  212. package/plugins/specweave-github/hooks/post-task-completion.sh +10 -9
  213. package/plugins/specweave-github/lib/completion-calculator.js +262 -0
  214. package/plugins/specweave-github/lib/completion-calculator.ts +434 -0
  215. package/plugins/specweave-github/lib/duplicate-detector.js +3 -3
  216. package/plugins/specweave-github/lib/duplicate-detector.ts +4 -4
  217. package/plugins/specweave-github/lib/epic-content-builder.js +38 -0
  218. package/plugins/specweave-github/lib/epic-content-builder.ts +59 -0
  219. package/plugins/specweave-github/lib/github-client-v2.js +49 -0
  220. package/plugins/specweave-github/lib/github-client-v2.ts +59 -0
  221. package/plugins/specweave-github/lib/github-epic-sync.ts +1 -1
  222. package/plugins/specweave-github/lib/github-feature-sync.js +381 -0
  223. package/plugins/specweave-github/lib/github-feature-sync.ts +568 -0
  224. package/plugins/specweave-github/lib/github-spec-content-sync.js +40 -10
  225. package/plugins/specweave-github/lib/github-spec-content-sync.ts +82 -14
  226. package/plugins/specweave-github/lib/progress-comment-builder.js +229 -0
  227. package/plugins/specweave-github/lib/progress-comment-builder.ts +324 -0
  228. package/plugins/specweave-github/lib/user-story-content-builder.js +299 -0
  229. package/plugins/specweave-github/lib/user-story-content-builder.ts +413 -0
  230. package/plugins/specweave-github/lib/user-story-issue-builder.js +344 -0
  231. package/plugins/specweave-github/lib/user-story-issue-builder.ts +543 -0
  232. package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +189 -0
  233. package/plugins/{specweave-ado/lib/enhanced-ado-sync.js → specweave-jira/lib/enhanced-jira-sync.js} +25 -61
  234. package/plugins/specweave-jira/lib/{enhanced-jira-sync.ts.disabled → enhanced-jira-sync.ts} +26 -52
  235. package/plugins/specweave-kafka/.claude-plugin/plugin.json +26 -0
  236. package/plugins/specweave-kafka/IMPLEMENTATION-COMPLETE.md +483 -0
  237. package/plugins/specweave-kafka/README.md +242 -0
  238. package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +235 -0
  239. package/plugins/specweave-kafka/agents/kafka-devops/AGENT.md +209 -0
  240. package/plugins/specweave-kafka/agents/kafka-observability/AGENT.md +266 -0
  241. package/plugins/specweave-kafka/commands/deploy.md +99 -0
  242. package/plugins/specweave-kafka/commands/dev-env.md +176 -0
  243. package/plugins/specweave-kafka/commands/mcp-configure.md +101 -0
  244. package/plugins/specweave-kafka/commands/monitor-setup.md +96 -0
  245. package/plugins/specweave-kafka/docker/kafka-local/docker-compose.yml +187 -0
  246. package/plugins/specweave-kafka/docker/redpanda/docker-compose.yml +199 -0
  247. package/plugins/specweave-kafka/docker/templates/consumer-nodejs.js +225 -0
  248. package/plugins/specweave-kafka/docker/templates/consumer-python.py +220 -0
  249. package/plugins/specweave-kafka/docker/templates/producer-nodejs.js +168 -0
  250. package/plugins/specweave-kafka/docker/templates/producer-python.py +167 -0
  251. package/plugins/specweave-kafka/lib/adapters/apache-kafka-adapter.js +438 -0
  252. package/plugins/specweave-kafka/lib/adapters/apache-kafka-adapter.ts +541 -0
  253. package/plugins/specweave-kafka/lib/adapters/platform-adapter.js +47 -0
  254. package/plugins/specweave-kafka/lib/adapters/platform-adapter.ts +343 -0
  255. package/plugins/specweave-kafka/lib/cli/kcat-wrapper.js +258 -0
  256. package/plugins/specweave-kafka/lib/cli/kcat-wrapper.ts +298 -0
  257. package/plugins/specweave-kafka/lib/cli/types.js +10 -0
  258. package/plugins/specweave-kafka/lib/cli/types.ts +92 -0
  259. package/plugins/specweave-kafka/lib/connectors/connector-catalog.js +305 -0
  260. package/plugins/specweave-kafka/lib/connectors/connector-catalog.ts +528 -0
  261. package/plugins/specweave-kafka/lib/documentation/diagram-generator.js +114 -0
  262. package/plugins/specweave-kafka/lib/documentation/diagram-generator.ts +195 -0
  263. package/plugins/specweave-kafka/lib/documentation/exporter.js +210 -0
  264. package/plugins/specweave-kafka/lib/documentation/exporter.ts +338 -0
  265. package/plugins/specweave-kafka/lib/documentation/schema-catalog-generator.js +60 -0
  266. package/plugins/specweave-kafka/lib/documentation/schema-catalog-generator.ts +130 -0
  267. package/plugins/specweave-kafka/lib/documentation/topology-generator.js +143 -0
  268. package/plugins/specweave-kafka/lib/documentation/topology-generator.ts +290 -0
  269. package/plugins/specweave-kafka/lib/mcp/detector.js +298 -0
  270. package/plugins/specweave-kafka/lib/mcp/detector.ts +352 -0
  271. package/plugins/specweave-kafka/lib/mcp/types.js +21 -0
  272. package/plugins/specweave-kafka/lib/mcp/types.ts +77 -0
  273. package/plugins/specweave-kafka/lib/multi-cluster/cluster-config-manager.js +193 -0
  274. package/plugins/specweave-kafka/lib/multi-cluster/cluster-config-manager.ts +362 -0
  275. package/plugins/specweave-kafka/lib/multi-cluster/cluster-switcher.js +188 -0
  276. package/plugins/specweave-kafka/lib/multi-cluster/cluster-switcher.ts +359 -0
  277. package/plugins/specweave-kafka/lib/multi-cluster/health-aggregator.js +195 -0
  278. package/plugins/specweave-kafka/lib/multi-cluster/health-aggregator.ts +380 -0
  279. package/plugins/specweave-kafka/lib/observability/opentelemetry-kafka.js +209 -0
  280. package/plugins/specweave-kafka/lib/observability/opentelemetry-kafka.ts +358 -0
  281. package/plugins/specweave-kafka/lib/patterns/advanced-ksqldb-patterns.js +354 -0
  282. package/plugins/specweave-kafka/lib/patterns/advanced-ksqldb-patterns.ts +563 -0
  283. package/plugins/specweave-kafka/lib/patterns/circuit-breaker-resilience.js +259 -0
  284. package/plugins/specweave-kafka/lib/patterns/circuit-breaker-resilience.ts +516 -0
  285. package/plugins/specweave-kafka/lib/patterns/dead-letter-queue.js +233 -0
  286. package/plugins/specweave-kafka/lib/patterns/dead-letter-queue.ts +423 -0
  287. package/plugins/specweave-kafka/lib/patterns/exactly-once-semantics.js +266 -0
  288. package/plugins/specweave-kafka/lib/patterns/exactly-once-semantics.ts +445 -0
  289. package/plugins/specweave-kafka/lib/patterns/flink-kafka-integration.js +312 -0
  290. package/plugins/specweave-kafka/lib/patterns/flink-kafka-integration.ts +561 -0
  291. package/plugins/specweave-kafka/lib/patterns/multi-dc-replication.js +289 -0
  292. package/plugins/specweave-kafka/lib/patterns/multi-dc-replication.ts +607 -0
  293. package/plugins/specweave-kafka/lib/patterns/rate-limiting-backpressure.js +264 -0
  294. package/plugins/specweave-kafka/lib/patterns/rate-limiting-backpressure.ts +498 -0
  295. package/plugins/specweave-kafka/lib/patterns/stream-processing-optimization.js +263 -0
  296. package/plugins/specweave-kafka/lib/patterns/stream-processing-optimization.ts +549 -0
  297. package/plugins/specweave-kafka/lib/patterns/tiered-storage-compaction.js +205 -0
  298. package/plugins/specweave-kafka/lib/patterns/tiered-storage-compaction.ts +399 -0
  299. package/plugins/specweave-kafka/lib/performance/performance-optimizer.js +249 -0
  300. package/plugins/specweave-kafka/lib/performance/performance-optimizer.ts +427 -0
  301. package/plugins/specweave-kafka/lib/security/kafka-security.js +252 -0
  302. package/plugins/specweave-kafka/lib/security/kafka-security.ts +494 -0
  303. package/plugins/specweave-kafka/lib/utils/capacity-planner.js +203 -0
  304. package/plugins/specweave-kafka/lib/utils/capacity-planner.ts +469 -0
  305. package/plugins/specweave-kafka/lib/utils/config-validator.js +419 -0
  306. package/plugins/specweave-kafka/lib/utils/config-validator.ts +564 -0
  307. package/plugins/specweave-kafka/lib/utils/partitioning.js +329 -0
  308. package/plugins/specweave-kafka/lib/utils/partitioning.ts +473 -0
  309. package/plugins/specweave-kafka/lib/utils/sizing.js +221 -0
  310. package/plugins/specweave-kafka/lib/utils/sizing.ts +374 -0
  311. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-broker-metrics.json +628 -0
  312. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-cluster-overview.json +564 -0
  313. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-consumer-lag.json +509 -0
  314. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-jvm-metrics.json +674 -0
  315. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-topic-metrics.json +578 -0
  316. package/plugins/specweave-kafka/monitoring/grafana/provisioning/dashboards/kafka.yml +17 -0
  317. package/plugins/specweave-kafka/monitoring/grafana/provisioning/datasources/prometheus.yml +17 -0
  318. package/plugins/specweave-kafka/monitoring/prometheus/kafka-alerts.yml +415 -0
  319. package/plugins/specweave-kafka/monitoring/prometheus/kafka-jmx-exporter.yml +256 -0
  320. package/plugins/specweave-kafka/package.json +41 -0
  321. package/plugins/specweave-kafka/skills/kafka-architecture/SKILL.md +647 -0
  322. package/plugins/specweave-kafka/skills/kafka-cli-tools/SKILL.md +433 -0
  323. package/plugins/specweave-kafka/skills/kafka-iac-deployment/SKILL.md +449 -0
  324. package/plugins/specweave-kafka/skills/kafka-kubernetes/SKILL.md +667 -0
  325. package/plugins/specweave-kafka/skills/kafka-mcp-integration/SKILL.md +273 -0
  326. package/plugins/specweave-kafka/skills/kafka-observability/SKILL.md +576 -0
  327. package/plugins/specweave-kafka/templates/config/broker-production.properties +254 -0
  328. package/plugins/specweave-kafka/templates/config/consumer-low-latency.properties +112 -0
  329. package/plugins/specweave-kafka/templates/config/producer-high-throughput.properties +120 -0
  330. package/plugins/specweave-kafka/templates/migration/mirrormaker2-config.properties +234 -0
  331. package/plugins/specweave-kafka/templates/monitoring/grafana/multi-cluster-dashboard.json +686 -0
  332. package/plugins/specweave-kafka/terraform/apache-kafka/main.tf +347 -0
  333. package/plugins/specweave-kafka/terraform/apache-kafka/outputs.tf +107 -0
  334. package/plugins/specweave-kafka/terraform/apache-kafka/templates/kafka-broker-init.sh.tpl +216 -0
  335. package/plugins/specweave-kafka/terraform/apache-kafka/variables.tf +156 -0
  336. package/plugins/specweave-kafka/terraform/aws-msk/main.tf +362 -0
  337. package/plugins/specweave-kafka/terraform/aws-msk/outputs.tf +93 -0
  338. package/plugins/specweave-kafka/terraform/aws-msk/templates/server.properties.tpl +32 -0
  339. package/plugins/specweave-kafka/terraform/aws-msk/variables.tf +235 -0
  340. package/plugins/specweave-kafka/terraform/azure-event-hubs/main.tf +281 -0
  341. package/plugins/specweave-kafka/terraform/azure-event-hubs/outputs.tf +118 -0
  342. package/plugins/specweave-kafka/terraform/azure-event-hubs/variables.tf +148 -0
  343. package/plugins/specweave-kafka/tsconfig.json +21 -0
  344. package/plugins/specweave-kafka-streams/.claude-plugin/plugin.json +23 -0
  345. package/plugins/specweave-kafka-streams/README.md +310 -0
  346. package/plugins/specweave-kafka-streams/skills/kafka-streams-topology/SKILL.md +539 -0
  347. package/plugins/specweave-n8n/.claude-plugin/plugin.json +22 -0
  348. package/plugins/specweave-n8n/README.md +354 -0
  349. package/plugins/specweave-n8n/skills/n8n-kafka-workflows/SKILL.md +504 -0
  350. package/plugins/specweave-release/commands/specweave-release-platform.md +1 -1
  351. package/plugins/specweave-release/hooks/post-task-completion.sh +2 -2
  352. package/src/templates/AGENTS.md.template +601 -7
  353. package/src/templates/CLAUDE.md.template +188 -88
  354. package/dist/locales/de/.gitkeep +0 -0
  355. package/dist/locales/de/cli.json +0 -108
  356. package/dist/locales/en/cli.json +0 -287
  357. package/dist/locales/en/errors.json +0 -7
  358. package/dist/locales/en/templates.json +0 -6
  359. package/dist/locales/es/.gitkeep +0 -0
  360. package/dist/locales/es/cli.json +0 -41
  361. package/dist/locales/fr/.gitkeep +0 -0
  362. package/dist/locales/fr/cli.json +0 -108
  363. package/dist/locales/ja/.gitkeep +0 -0
  364. package/dist/locales/ja/cli.json +0 -108
  365. package/dist/locales/ko/.gitkeep +0 -0
  366. package/dist/locales/ko/cli.json +0 -108
  367. package/dist/locales/pt/.gitkeep +0 -0
  368. package/dist/locales/pt/cli.json +0 -108
  369. package/dist/locales/ru/.gitkeep +0 -0
  370. package/dist/locales/ru/cli.json +0 -269
  371. package/dist/locales/zh/.gitkeep +0 -0
  372. package/dist/locales/zh/cli.json +0 -108
  373. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts +0 -25
  374. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts.map +0 -1
  375. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -191
  376. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js.map +0 -1
  377. package/dist/spec-parser.js +0 -629
  378. package/dist/src/core/sync/spec-content-sync.d.ts +0 -88
  379. package/dist/src/core/sync/spec-content-sync.d.ts.map +0 -1
  380. package/dist/src/core/sync/spec-content-sync.js +0 -5
  381. package/dist/src/core/sync/spec-content-sync.js.map +0 -1
  382. package/dist/tsconfig.tsbuildinfo +0 -1
  383. package/plugins/specweave-ado/commands/specweave-ado-sync-spec.md +0 -255
  384. package/plugins/specweave-github/commands/specweave-github-sync-epic.md +0 -248
  385. package/plugins/specweave-github/commands/specweave-github-sync-from.md +0 -147
  386. package/plugins/specweave-github/commands/specweave-github-sync-spec.md +0 -208
  387. package/plugins/specweave-github/commands/specweave-github-sync-tasks.md +0 -530
  388. package/plugins/specweave-jira/commands/specweave-jira-sync-epic.md +0 -267
  389. package/plugins/specweave-jira/commands/specweave-jira-sync-spec.md +0 -240
@@ -0,0 +1,375 @@
1
+ # specweave-confluent
2
+
3
+ **Confluent Cloud Integration Plugin for SpecWeave**
4
+
5
+ Enterprise Kafka features including Schema Registry, ksqlDB stream processing, Cluster Linking, and Confluent Cloud architecture patterns.
6
+
7
+ ## Features
8
+
9
+ ### 🚀 Core Capabilities
10
+
11
+ - **Schema Registry**: Avro, Protobuf, JSON Schema management with compatibility modes
12
+ - **ksqlDB**: SQL-like stream processing with real-time queries and materialized views
13
+ - **Confluent Cloud**: eCKU sizing, multi-region architecture, cluster linking
14
+ - **Stream Governance**: Schema validation, data quality, lineage tracking
15
+ - **Enterprise Features**: Cluster Linking, Tiered Storage, Private Networking
16
+
17
+ ### 📚 Skills (2)
18
+
19
+ **Organized for Enterprise Kafka**:
20
+
21
+ - `confluent-schema-registry` - Schema management, evolution strategies, Avro/Protobuf/JSON Schema, compatibility modes
22
+ - `confluent-ksqldb` - Stream processing with SQL, joins, aggregations, windowing, materialized views
23
+
24
+ ### 🤖 Agents (1)
25
+
26
+ - `confluent-architect` - eCKU sizing, cluster linking, multi-region strategies, cost optimization
27
+
28
+ ### ⚡ Commands (0)
29
+
30
+ *Commands coming in future releases*
31
+
32
+ ## Installation
33
+
34
+ ### Prerequisites
35
+
36
+ - Node.js 18+
37
+ - Confluent Cloud account (or self-hosted Confluent Platform)
38
+ - Schema Registry credentials
39
+ - ksqlDB cluster (optional)
40
+
41
+ ### Install Plugin
42
+
43
+ ```bash
44
+ # Via SpecWeave marketplace
45
+ specweave plugin install specweave-confluent
46
+
47
+ # Or via Claude Code plugin system
48
+ /plugin install specweave-confluent
49
+ ```
50
+
51
+ ## Quick Start
52
+
53
+ ### 1. Schema Registry - Register Avro Schema
54
+
55
+ ```javascript
56
+ const { SchemaRegistry } = require('@kafkajs/confluent-schema-registry');
57
+
58
+ const registry = new SchemaRegistry({
59
+ host: 'https://schema-registry.us-east-1.aws.confluent.cloud',
60
+ auth: {
61
+ username: process.env.SR_API_KEY,
62
+ password: process.env.SR_API_SECRET
63
+ }
64
+ });
65
+
66
+ // Define Avro schema
67
+ const schema = `
68
+ {
69
+ "type": "record",
70
+ "name": "User",
71
+ "fields": [
72
+ {"name": "id", "type": "long"},
73
+ {"name": "name", "type": "string"},
74
+ {"name": "email", "type": ["null", "string"], "default": null}
75
+ ]
76
+ }
77
+ `;
78
+
79
+ // Register schema
80
+ const { id } = await registry.register({
81
+ type: SchemaType.AVRO,
82
+ schema
83
+ });
84
+
85
+ console.log(`Schema registered with ID: ${id}`);
86
+
87
+ // Encode message
88
+ const payload = await registry.encode(id, {
89
+ id: 1,
90
+ name: 'John Doe',
91
+ email: 'john@example.com'
92
+ });
93
+
94
+ // Send to Kafka
95
+ await producer.send({
96
+ topic: 'users',
97
+ messages: [{ value: payload }]
98
+ });
99
+ ```
100
+
101
+ ### 2. ksqlDB - Real-Time Stream Processing
102
+
103
+ ```sql
104
+ -- Create stream from Kafka topic
105
+ CREATE STREAM clicks_stream (
106
+ user_id BIGINT,
107
+ page VARCHAR,
108
+ timestamp TIMESTAMP
109
+ ) WITH (
110
+ kafka_topic='clicks',
111
+ value_format='AVRO'
112
+ );
113
+
114
+ -- Filter important events
115
+ CREATE STREAM checkout_clicks AS
116
+ SELECT user_id, page, timestamp
117
+ FROM clicks_stream
118
+ WHERE page = 'checkout'
119
+ EMIT CHANGES;
120
+
121
+ -- Real-time aggregation (5-minute tumbling window)
122
+ CREATE TABLE user_clicks_per_5min AS
123
+ SELECT
124
+ user_id,
125
+ WINDOWSTART AS window_start,
126
+ COUNT(*) AS click_count
127
+ FROM clicks_stream
128
+ WINDOW TUMBLING (SIZE 5 MINUTES)
129
+ GROUP BY user_id
130
+ EMIT CHANGES;
131
+
132
+ -- Query current window
133
+ SELECT * FROM user_clicks_per_5min
134
+ WHERE user_id = 123;
135
+ ```
136
+
137
+ ### 3. Confluent Cloud - Cluster Sizing
138
+
139
+ Ask the `confluent-architect` agent:
140
+
141
+ ```
142
+ Me: "I need 50K msg/sec, 7-day retention. How many eCKUs?"
143
+
144
+ Confluent Architect:
145
+ - Throughput: 50K msg/sec × 1KB = 50 MB/sec
146
+ - eCKU calculation: 50 MB/sec / 30 MB/sec per CKU = 2 CKUs
147
+ - Recommended: 4 CKUs (100% headroom for bursts)
148
+ - Cost: 4 CKUs × $0.11/hour × 730 hours = $321/month
149
+ - Cluster type: Standard (99.95% SLA)
150
+ ```
151
+
152
+ ## Architecture
153
+
154
+ ### Schema Registry Integration
155
+
156
+ **Producer with Avro**:
157
+ ```javascript
158
+ const { Kafka } = require('kafkajs');
159
+ const { SchemaRegistry, SchemaType } = require('@kafkajs/confluent-schema-registry');
160
+
161
+ const kafka = new Kafka({
162
+ clientId: 'my-producer',
163
+ brokers: ['pkc-xxx.us-east-1.aws.confluent.cloud:9092'],
164
+ ssl: true,
165
+ sasl: {
166
+ mechanism: 'plain',
167
+ username: process.env.KAFKA_API_KEY,
168
+ password: process.env.KAFKA_API_SECRET
169
+ }
170
+ });
171
+
172
+ const registry = new SchemaRegistry({
173
+ host: 'https://psrc-xxx.us-east-1.aws.confluent.cloud',
174
+ auth: {
175
+ username: process.env.SR_API_KEY,
176
+ password: process.env.SR_API_SECRET
177
+ }
178
+ });
179
+
180
+ const producer = kafka.producer();
181
+ await producer.connect();
182
+
183
+ // Encode with schema
184
+ const payload = await registry.encode(schemaId, { id: 1, name: 'John' });
185
+
186
+ await producer.send({
187
+ topic: 'users',
188
+ messages: [{ value: payload }]
189
+ });
190
+ ```
191
+
192
+ **Consumer with Avro**:
193
+ ```javascript
194
+ const consumer = kafka.consumer({ groupId: 'user-processor' });
195
+ await consumer.subscribe({ topic: 'users' });
196
+
197
+ await consumer.run({
198
+ eachMessage: async ({ message }) => {
199
+ // Decode automatically (schema ID in header)
200
+ const user = await registry.decode(message.value);
201
+ console.log(user); // { id: 1, name: 'John' }
202
+ }
203
+ });
204
+ ```
205
+
206
+ ### ksqlDB Deployment Patterns
207
+
208
+ **Confluent Cloud**:
209
+ - Managed ksqlDB clusters (CSUs - Confluent Streaming Units)
210
+ - 1 CSU = 1 vCPU + 4GB RAM
211
+ - Auto-scaling based on query load
212
+ - 99.95% SLA
213
+
214
+ **Self-Hosted**:
215
+ - Deploy on Kubernetes (Helm chart)
216
+ - 3+ nodes for HA (multi-AZ)
217
+ - Persistent query state in RocksDB
218
+ - Standby replicas for failover
219
+
220
+ ### Cluster Linking Topology
221
+
222
+ **Active-Passive (DR)**:
223
+ ```
224
+ ┌─────────────────┐ ┌─────────────────┐
225
+ │ Primary │ │ Secondary │
226
+ │ us-east-1 │ ──────> │ us-west-2 │
227
+ │ (4 CKUs) │ Linking │ (2 CKUs) │
228
+ └─────────────────┘ └─────────────────┘
229
+ ```
230
+
231
+ **Active-Active (Multi-Region)**:
232
+ ```
233
+ ┌─────────────────┐ <──────> ┌─────────────────┐
234
+ │ US Cluster │ Linking │ EU Cluster │
235
+ │ us-east-1 │ (Bi-Dir) │ eu-west-1 │
236
+ │ (6 CKUs) │ │ (6 CKUs) │
237
+ └─────────────────┘ └─────────────────┘
238
+ ```
239
+
240
+ ## Usage Examples
241
+
242
+ ### Schema Evolution - Add Optional Field
243
+
244
+ ```javascript
245
+ // V1 schema
246
+ const schemaV1 = `
247
+ {
248
+ "type": "record",
249
+ "name": "User",
250
+ "fields": [
251
+ {"name": "id", "type": "long"},
252
+ {"name": "name", "type": "string"}
253
+ ]
254
+ }
255
+ `;
256
+
257
+ // V2 schema - BACKWARD compatible (added optional field)
258
+ const schemaV2 = `
259
+ {
260
+ "type": "record",
261
+ "name": "User",
262
+ "fields": [
263
+ {"name": "id", "type": "long"},
264
+ {"name": "name", "type": "string"},
265
+ {"name": "email", "type": ["null", "string"], "default": null}
266
+ ]
267
+ }
268
+ `;
269
+
270
+ // Test compatibility BEFORE registering
271
+ const compatible = await registry.checkCompatibility({
272
+ schema: schemaV2,
273
+ subject: 'users-value'
274
+ });
275
+
276
+ if (compatible) {
277
+ await registry.register({ schema: schemaV2 });
278
+ }
279
+ ```
280
+
281
+ ### ksqlDB - Enrich Events with Stream-Table Join
282
+
283
+ ```sql
284
+ -- Create users table (current state)
285
+ CREATE TABLE users (
286
+ user_id BIGINT PRIMARY KEY,
287
+ name VARCHAR,
288
+ email VARCHAR
289
+ ) WITH (
290
+ kafka_topic='users',
291
+ value_format='AVRO'
292
+ );
293
+
294
+ -- Enrich click events with user data
295
+ CREATE STREAM enriched_clicks AS
296
+ SELECT
297
+ c.user_id,
298
+ c.page,
299
+ c.timestamp,
300
+ u.name,
301
+ u.email
302
+ FROM clicks_stream c
303
+ LEFT JOIN users u ON c.user_id = u.user_id
304
+ EMIT CHANGES;
305
+ ```
306
+
307
+ ### Confluent Cloud - eCKU Sizing Calculator
308
+
309
+ ```
310
+ Inputs:
311
+ - Throughput: 100K msg/sec × 1KB avg = 100 MB/sec
312
+ - Peak factor: 2.0x (200 MB/sec peak)
313
+ - Retention: 7 days
314
+ - Partitions: 20 topics × 24 partitions = 480 total
315
+
316
+ eCKU Calculation:
317
+ - Write throughput: 200 MB/sec / 30 MB/sec per CKU = 6.67 CKUs
318
+ - Recommended: 8 CKUs (rounded up)
319
+ - Partition validation: 480 partitions / 8 CKUs = 60 partitions/CKU (OK, <1500 limit)
320
+
321
+ Cost:
322
+ - 8 CKUs × $0.11/hour × 730 hours = $642/month
323
+ - Storage: Included (800 GB total)
324
+
325
+ Alternative (Dedicated):
326
+ - 2 dedicated CKUs (higher performance)
327
+ - Cost: $2,190/month
328
+ - Use when: >10 CKUs OR >1000 partitions OR <5ms latency required
329
+ ```
330
+
331
+ ## Testing
332
+
333
+ ```bash
334
+ # Unit tests
335
+ npm test
336
+
337
+ # Integration tests (requires Confluent Cloud credentials)
338
+ npm run test:integration
339
+
340
+ # E2E tests (requires ksqlDB cluster)
341
+ npm run test:e2e
342
+ ```
343
+
344
+ ## Documentation
345
+
346
+ - **Schema Registry Guide**: `.specweave/docs/public/guides/confluent-schema-registry.md`
347
+ - **ksqlDB Tutorial**: `.specweave/docs/public/guides/confluent-ksqldb.md`
348
+ - **Cluster Linking**: `.specweave/docs/public/guides/confluent-cluster-linking.md`
349
+ - **Cost Optimization**: `.specweave/docs/public/guides/confluent-cost-optimization.md`
350
+
351
+ ## Contributing
352
+
353
+ See [CONTRIBUTING.md](../../CONTRIBUTING.md) for development setup and guidelines.
354
+
355
+ ## Related Plugins
356
+
357
+ - **specweave-kafka** - Core Kafka plugin (Apache Kafka, AWS MSK, Azure Event Hubs)
358
+ - **specweave-kafka-streams** - Kafka Streams library and patterns
359
+ - **specweave-n8n** - n8n workflow automation with Kafka/Confluent integration
360
+
361
+ ## License
362
+
363
+ MIT License - see [LICENSE](../../LICENSE)
364
+
365
+ ## Support
366
+
367
+ - **Documentation**: https://spec-weave.com/docs/plugins/confluent
368
+ - **Issues**: https://github.com/anton-abyzov/specweave/issues
369
+ - **Discussions**: https://github.com/anton-abyzov/specweave/discussions
370
+
371
+ ---
372
+
373
+ **Version**: 1.0.0
374
+ **Last Updated**: 2025-11-15
375
+ **Status**: ✅ Production Ready
@@ -0,0 +1,306 @@
1
+ ---
2
+ name: confluent-architect
3
+ description: Confluent Cloud architecture specialist. Expert in eCKU sizing, cluster linking, multi-region strategies, Schema Registry HA, ksqlDB deployment, Stream Governance, and cost optimization. Activates for confluent cloud architecture, ecku sizing, cluster linking, multi-region kafka, schema registry ha, stream governance, cost optimization.
4
+ ---
5
+
6
+ # Confluent Architect Agent
7
+
8
+ I'm a specialized architecture agent with deep expertise in designing scalable, reliable Confluent Cloud systems.
9
+
10
+ ## My Expertise
11
+
12
+ ### Confluent Cloud Architecture
13
+
14
+ **eCKU-Based Cluster Sizing**:
15
+ - CKU (Confluent Kafka Unit) = Compute + storage + bandwidth unit
16
+ - Cluster sizing based on throughput and partition count
17
+ - Auto-scaling capabilities and limits
18
+ - Cost optimization strategies
19
+
20
+ **Cluster Types**:
21
+ - **Basic**: Single-zone, no SLA, dev/test only ($0.0015/GB)
22
+ - **Standard**: Multi-zone, 99.95% SLA, production ($0.11/CKU/hour)
23
+ - **Dedicated**: Private cluster, 99.99% SLA, enterprise ($1.50/CKU/hour)
24
+
25
+ **Multi-Region Strategies**:
26
+ - Cluster Linking for cross-region replication
27
+ - Active-Active vs Active-Passive
28
+ - Disaster recovery patterns
29
+ - Latency optimization
30
+
31
+ ### Schema Registry High Availability
32
+
33
+ **Deployment Models**:
34
+ - Shared (Basic/Standard clusters) - Managed by Confluent
35
+ - Dedicated (Dedicated clusters) - Full control
36
+ - Multi-region Schema Registry for geo-redundancy
37
+
38
+ **Best Practices**:
39
+ - Use subject mode per environment (IMPORT/READONLY/READWRITE)
40
+ - Schema compatibility modes per business requirements
41
+ - Schema evolution governance
42
+
43
+ ### ksqlDB Deployment Patterns
44
+
45
+ **Sizing**:
46
+ - Confluent Streaming Units (CSUs) for compute
47
+ - 1 CSU = 1 vCPU + 4GB RAM
48
+ - Auto-scaling based on query load
49
+
50
+ **High Availability**:
51
+ - Multi-AZ deployment (3+ nodes)
52
+ - Standby replicas for stateful queries
53
+ - Persistent query rebalancing
54
+
55
+ ## When to Invoke Me
56
+
57
+ I activate for:
58
+ - **Architecture questions**: "Design Confluent Cloud architecture", "Multi-region Kafka setup"
59
+ - **eCKU sizing**: "How many CKUs do I need?", "Cluster sizing for 10K msg/sec"
60
+ - **Cost optimization**: "Reduce Confluent Cloud costs", "eCKU vs partition count"
61
+ - **Cluster linking**: "Cross-region replication", "Active-Active Kafka"
62
+ - **Schema Registry**: "HA Schema Registry", "Multi-region schema management"
63
+ - **ksqlDB architecture**: "ksqlDB cluster sizing", "Persistent query deployment"
64
+
65
+ ## My Tools
66
+
67
+ **Utilities**:
68
+ - **eCKUSizingCalculator**: Estimate CKUs based on throughput, partitions, retention
69
+ - **CostOptimizer**: Identify cost savings (tier storage, partition reduction, cluster linking)
70
+ - **ClusterLinkingPlanner**: Design multi-region replication topology
71
+
72
+ ## Example Workflows
73
+
74
+ ### Workflow 1: Design Confluent Cloud Architecture for E-Commerce
75
+
76
+ ```
77
+ User: "Design Confluent Cloud for 50K msg/sec, 7-day retention, multi-region"
78
+
79
+ Me:
80
+ 1. Cluster Sizing (Primary Region):
81
+ - Throughput: 50K msg/sec × 1KB avg = 50 MB/sec
82
+ - eCKU estimation:
83
+ - 1 CKU = ~30 MB/sec write throughput
84
+ - Required: 50 / 30 = 2 CKUs (minimum)
85
+ - Recommended: 4 CKUs (100% headroom for bursts)
86
+ - Cluster type: Standard (99.95% SLA)
87
+
88
+ 2. Partition Strategy:
89
+ - Topics: 10 topics × 12 partitions = 120 total partitions
90
+ - eCKU supports up to 4500 partitions (well within limits)
91
+
92
+ 3. Storage (7-day retention):
93
+ - Daily write: 50 MB/sec × 86,400 sec = 4.32 TB/day
94
+ - 7-day retention: 4.32 × 7 = 30.24 TB
95
+ - Confluent Cloud storage: Included (no additional cost)
96
+
97
+ 4. Multi-Region Strategy (DR):
98
+ - Primary: us-east-1 (Standard, 4 CKUs)
99
+ - Secondary: us-west-2 (Standard, 2 CKUs)
100
+ - Cluster Linking: Unidirectional (primary → secondary)
101
+ - Failover time: <5 minutes (manual failover)
102
+
103
+ 5. Schema Registry:
104
+ - Use shared Schema Registry (included with Standard)
105
+ - Enable multi-region sync (optional, +$50/month)
106
+
107
+ 6. Cost Estimation:
108
+ - Primary cluster: 4 CKUs × $0.11/hour × 730 hours = $321/month
109
+ - Secondary cluster: 2 CKUs × $0.11/hour × 730 hours = $161/month
110
+ - Cluster Linking: $0.08/GB replicated (~10 TB/month) = $800/month
111
+ - Total: ~$1,282/month
112
+
113
+ 7. Cost Optimization:
114
+ - Use Tiered Storage (reduce retention costs by 90%)
115
+ - Archive cold data to S3 after 7 days
116
+ - Savings: ~$400/month
117
+ ```
118
+
119
+ ### Workflow 2: eCKU Sizing for High-Throughput Application
120
+
121
+ ```
122
+ User: "I need 100K msg/sec, how many CKUs?"
123
+
124
+ Me:
125
+ 1. Throughput Analysis:
126
+ - Target: 100K msg/sec × 1KB avg = 100 MB/sec write
127
+ - Peak: 100 MB/sec × 2.0 (headroom) = 200 MB/sec
128
+
129
+ 2. eCKU Calculation:
130
+ - 1 CKU = ~30 MB/sec write throughput (guideline)
131
+ - Required: 200 / 30 = 6.67 CKUs
132
+ - Recommended: 8 CKUs (rounded up)
133
+
134
+ 3. Partition Count:
135
+ - Topics: 20 topics × 24 partitions = 480 total partitions
136
+ - 8 CKUs support up to 13,500 partitions (OK)
137
+
138
+ 4. Validation:
139
+ - Throughput per partition: 100 MB/sec / 480 = 208 KB/sec/partition (OK)
140
+ - Partition limit per CKU: 480 / 8 = 60 partitions/CKU (well below 1500 limit)
141
+
142
+ 5. Cost Estimation:
143
+ - 8 CKUs × $0.11/hour × 730 hours = $642/month
144
+ - Storage: Included (100 GB/CKU × 8 = 800 GB)
145
+
146
+ 6. Alternative: Dedicated Cluster
147
+ - 2 dedicated CKUs (higher performance)
148
+ - 2 CKUs × $1.50/hour × 730 hours = $2,190/month
149
+ - When to use: >10 CKUs OR >1000 partitions OR <5ms latency
150
+ ```
151
+
152
+ ### Workflow 3: Multi-Region Active-Active Architecture
153
+
154
+ ```
155
+ User: "Design active-active Kafka across US and EU"
156
+
157
+ Me:
158
+ 1. Cluster Topology:
159
+ - us-east-1 cluster (PRIMARY-US)
160
+ - eu-west-1 cluster (PRIMARY-EU)
161
+ - Cluster Linking: Bidirectional
162
+
163
+ 2. Topic Design:
164
+ - US topics: orders-us, payments-us (US data)
165
+ - EU topics: orders-eu, payments-eu (EU data)
166
+ - Global topics: products, users (replicated both ways)
167
+
168
+ 3. Cluster Linking Configuration:
169
+ - US → EU: Replicate global topics + aggregate analytics
170
+ - EU → US: Replicate global topics + aggregate analytics
171
+ - Mirror topics: <cluster-name>.<topic-name>
172
+
173
+ 4. Data Sovereignty:
174
+ - US user data stays in US cluster
175
+ - EU user data stays in EU cluster (GDPR compliance)
176
+ - Global reference data (products) replicated
177
+
178
+ 5. Conflict Resolution:
179
+ - Use timestamp-based conflict resolution (last-write-wins)
180
+ - OR partition data by region (user_id % region_count)
181
+
182
+ 6. Failover Strategy:
183
+ - US cluster down → EU cluster serves all traffic
184
+ - Cluster Linking auto-switches to pull mode
185
+ - Failover time: ~2 minutes (automatic)
186
+
187
+ 7. Cost:
188
+ - US cluster: 6 CKUs × $0.11 × 730 = $482/month
189
+ - EU cluster: 6 CKUs × $0.11 × 730 = $482/month
190
+ - Cluster Linking: $0.08/GB × 20 TB/month = $1,600/month
191
+ - Total: ~$2,564/month
192
+ ```
193
+
194
+ ## Best Practices I Enforce
195
+
196
+ ### eCKU Sizing
197
+
198
+ ✅ **DO**:
199
+ - Start with 2-4 CKUs, scale based on metrics
200
+ - Monitor partition count (<1500 per CKU)
201
+ - Use auto-scaling (CKU range: min-max)
202
+ - Leave 50-100% headroom for bursts
203
+
204
+ ❌ **DON'T**:
205
+ - Over-provision CKUs (pay for unused capacity)
206
+ - Exceed 1500 partitions per CKU
207
+ - Use Basic cluster for production
208
+ - Forget to monitor CKU utilization
209
+
210
+ ### Cluster Linking
211
+
212
+ ✅ **DO**:
213
+ - Use unidirectional for DR (primary → backup)
214
+ - Use bidirectional for active-active
215
+ - Enable auto-offset sync for consumers
216
+ - Test failover regularly
217
+
218
+ ❌ **DON'T**:
219
+ - Replicate everything (only critical topics)
220
+ - Create circular replication loops
221
+ - Forget to configure ACLs on mirror topics
222
+
223
+ ### Schema Registry
224
+
225
+ ✅ **DO**:
226
+ - Use BACKWARD compatibility (default)
227
+ - Enable schema validation on produce
228
+ - Use subject naming convention (<topic>-key, <topic>-value)
229
+ - Test schema changes in dev first
230
+
231
+ ❌ **DON'T**:
232
+ - Use NONE compatibility in production
233
+ - Change compatibility mode without planning
234
+ - Register schemas manually (automate!)
235
+
236
+ ### Cost Optimization
237
+
238
+ ✅ **DO**:
239
+ - Use Tiered Storage (90% cheaper than hot storage)
240
+ - Reduce partition count (consolidate low-traffic topics)
241
+ - Delete unused topics
242
+ - Use Basic cluster for dev/test
243
+ - Monitor eCKU utilization (should be >60%)
244
+
245
+ ❌ **DON'T**:
246
+ - Keep all data in hot storage
247
+ - Create topics with >100 partitions by default
248
+ - Run production workloads in Basic cluster
249
+
250
+ ## Confluent Cloud Feature Comparison
251
+
252
+ | Feature | Basic | Standard | Dedicated |
253
+ |---------|-------|----------|-----------|
254
+ | **SLA** | None | 99.95% | 99.99% |
255
+ | **Availability** | Single-zone | Multi-zone | Multi-zone + Private |
256
+ | **eCKU Range** | N/A (fixed) | 1-32 CKUs | Unlimited |
257
+ | **Max Throughput** | 50 MB/sec | ~960 MB/sec (32 CKUs) | Unlimited |
258
+ | **Max Partitions** | 100 | 48,000 (32 CKUs) | Unlimited |
259
+ | **Cluster Linking** | ❌ No | ✅ Yes | ✅ Yes |
260
+ | **Private Networking** | ❌ No | ❌ No | ✅ Yes (PrivateLink) |
261
+ | **RBAC** | ❌ No | ✅ Yes | ✅ Yes |
262
+ | **Audit Logs** | ❌ No | ✅ Yes | ✅ Yes |
263
+ | **Cost** | $0.0015/GB | $0.11/CKU/hour | $1.50/CKU/hour |
264
+
265
+ ## Decision Trees
266
+
267
+ ### Cluster Type Selection
268
+
269
+ ```
270
+ Choose Confluent Cloud cluster type:
271
+ ├─ Production workload?
272
+ │ ├─ Yes → Standard OR Dedicated
273
+ │ │ ├─ >10 CKUs needed? → Dedicated
274
+ │ │ ├─ <5ms latency required? → Dedicated
275
+ │ │ ├─ PrivateLink/VPC peering? → Dedicated
276
+ │ │ └─ Otherwise → Standard
277
+ │ └─ No → Basic (dev/test only)
278
+ ```
279
+
280
+ ### Multi-Region Strategy
281
+
282
+ ```
283
+ Need multi-region Kafka?
284
+ ├─ Disaster Recovery (passive backup)?
285
+ │ └─ Cluster Linking (unidirectional, primary → backup)
286
+
287
+ ├─ Active-Active (both regions active)?
288
+ │ └─ Cluster Linking (bidirectional) + partition by region
289
+
290
+ ├─ Data Sovereignty (GDPR compliance)?
291
+ │ └─ Separate clusters per region + selective replication
292
+
293
+ └─ Global aggregation (analytics)?
294
+ └─ Regional clusters → Central analytics cluster (Cluster Linking)
295
+ ```
296
+
297
+ ## References
298
+
299
+ - Confluent Cloud Pricing: https://www.confluent.io/confluent-cloud/pricing/
300
+ - eCKU Sizing Guide: https://docs.confluent.io/cloud/current/clusters/cluster-types.html
301
+ - Cluster Linking: https://docs.confluent.io/cloud/current/multi-cloud/cluster-linking/
302
+ - Tiered Storage: https://docs.confluent.io/cloud/current/clusters/tiered-storage.html
303
+
304
+ ---
305
+
306
+ **Invoke me when you need Confluent Cloud architecture, eCKU sizing, or multi-region design expertise!**