moai-adk 0.10.1__py3-none-any.whl → 0.11.0__py3-none-any.whl

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.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (245) hide show
  1. moai_adk/core/project/phase_executor.py +4 -0
  2. moai_adk/core/tags/ci_validator.py +33 -3
  3. moai_adk/core/template_engine.py +6 -2
  4. moai_adk/templates/.github/workflows/moai-gitflow.yml +6 -1
  5. moai_adk/templates/.github/workflows/release.yml +6 -2
  6. moai_adk/templates/.github/workflows/tag-validation.yml +53 -8
  7. moai_adk/templates/CLAUDE.md +458 -67
  8. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/METADATA +28 -13
  9. moai_adk-0.11.0.dist-info/RECORD +77 -0
  10. moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
  11. moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
  12. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
  13. moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
  14. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -350
  15. moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -273
  16. moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
  17. moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
  18. moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -287
  19. moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -287
  20. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -326
  21. moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
  22. moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1189
  23. moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -728
  24. moai_adk/templates/.claude/commands/alfred/2-run.md +0 -545
  25. moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -683
  26. moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
  27. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -209
  28. moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -750
  29. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
  30. moai_adk/templates/.claude/hooks/alfred/notification__handle_events.py +0 -102
  31. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -102
  32. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -108
  33. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -102
  34. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -102
  35. moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
  36. moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py +0 -271
  37. moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
  38. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +0 -756
  39. moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -198
  40. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
  41. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
  42. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -25
  43. moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -175
  44. moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -90
  45. moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
  46. moai_adk/templates/.claude/hooks/alfred/stop__handle_interrupt.py +0 -102
  47. moai_adk/templates/.claude/hooks/alfred/subagent_stop__handle_subagent_end.py +0 -102
  48. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -120
  49. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -640
  50. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -696
  51. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -474
  52. moai_adk/templates/.claude/settings.json +0 -144
  53. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
  54. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
  55. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
  56. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
  57. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
  58. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
  59. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
  60. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
  61. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
  62. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
  63. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
  64. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
  65. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
  66. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
  67. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
  68. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
  69. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
  70. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
  71. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
  72. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
  73. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
  74. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
  75. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
  76. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
  77. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
  78. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
  79. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
  80. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
  81. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
  82. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
  83. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
  84. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
  85. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
  86. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
  87. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
  88. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
  89. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
  90. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
  91. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
  92. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -290
  93. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
  94. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
  95. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
  96. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
  97. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
  98. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
  99. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
  100. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
  101. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -123
  102. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
  103. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
  104. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
  105. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
  106. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
  107. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -124
  108. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
  109. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
  110. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
  111. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
  112. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
  113. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
  114. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
  115. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
  116. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
  117. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
  118. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
  119. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
  120. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
  121. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
  122. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
  123. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
  124. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
  125. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
  126. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
  127. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
  128. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
  129. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
  130. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
  131. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
  132. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
  133. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
  134. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
  135. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
  136. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
  137. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
  138. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
  139. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
  140. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
  141. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
  142. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
  143. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
  144. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
  145. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
  146. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
  147. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
  148. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
  149. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
  150. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  151. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
  152. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
  153. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
  154. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
  155. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
  156. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
  157. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
  158. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
  159. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
  160. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
  161. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
  162. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
  163. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
  164. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -124
  165. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
  166. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
  167. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -124
  168. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
  169. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
  170. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
  171. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
  172. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
  173. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
  174. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
  175. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
  176. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -123
  177. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
  178. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
  179. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -431
  180. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
  181. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
  182. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
  183. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
  184. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
  185. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
  186. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
  187. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
  188. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -124
  189. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
  190. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
  191. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -123
  192. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
  193. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
  194. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
  195. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
  196. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
  197. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
  198. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
  199. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
  200. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
  201. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
  202. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
  203. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -127
  204. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
  205. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
  206. moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +0 -482
  207. moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -278
  208. moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
  209. moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -477
  210. moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
  211. moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
  212. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
  213. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
  214. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -271
  215. moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
  216. moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -583
  217. moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -526
  218. moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -465
  219. moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -328
  220. moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -312
  221. moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
  222. moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -285
  223. moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -278
  224. moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -303
  225. moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
  226. moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -219
  227. moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +0 -161
  228. moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
  229. moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
  230. moai_adk/templates/.moai/config.json +0 -113
  231. moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -208
  232. moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -369
  233. moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -539
  234. moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -344
  235. moai_adk/templates/.moai/memory/ISSUE-LABEL-MAPPING.md +0 -150
  236. moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -218
  237. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -330
  238. moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
  239. moai_adk/templates/.moai/project/product.md +0 -161
  240. moai_adk/templates/.moai/project/structure.md +0 -156
  241. moai_adk/templates/.moai/project/tech.md +0 -227
  242. moai_adk-0.10.1.dist-info/RECORD +0 -309
  243. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/WHEEL +0 -0
  244. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/entry_points.txt +0 -0
  245. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,660 +0,0 @@
1
- # Backend Architecture Reference
2
-
3
- ## Architecture Decision Matrix
4
-
5
- ### When to Choose Each Pattern
6
-
7
- | Pattern | Team Size | Complexity | Deployment | Scaling | Use Cases |
8
- |---------|-----------|------------|------------|---------|-----------|
9
- | **Layered Monolith** | 1-5 | Low-Medium | Simple | Vertical | MVPs, startups, internal tools |
10
- | **Modular Monolith** | 5-15 | Medium | Simple | Vertical | Growing products, clear domains |
11
- | **Microservices** | 15+ | High | Complex | Horizontal | Large-scale, multi-team, polyglot |
12
- | **Serverless** | Any | Low-Medium | Managed | Auto | Event-driven, spiky traffic, rapid prototyping |
13
- | **Event-Driven** | 10+ | High | Complex | Horizontal | Real-time analytics, decoupled systems, audit logs |
14
-
15
- ### Decision Criteria
16
-
17
- **Choose Layered Monolith when**:
18
- - Small team (1-5 developers)
19
- - Rapid prototyping phase
20
- - Simple deployment requirements
21
- - Limited operational expertise
22
- - Cost-sensitive project
23
-
24
- **Choose Modular Monolith when**:
25
- - Growing team (5-15 developers)
26
- - Clear domain boundaries emerging
27
- - Need independent module development
28
- - Want extraction path to microservices
29
- - Prefer simple deployment
30
-
31
- **Choose Microservices when**:
32
- - Large team (15+ developers)
33
- - Multiple independent products/teams
34
- - Polyglot technology requirements
35
- - Need independent scaling per service
36
- - High operational maturity (Kubernetes, Istio)
37
-
38
- **Choose Serverless when**:
39
- - Event-driven workloads
40
- - Spiky or unpredictable traffic
41
- - Want zero infrastructure management
42
- - Cost optimization for low usage
43
- - Rapid feature iteration
44
-
45
- **Choose Event-Driven when**:
46
- - Real-time data processing
47
- - Audit logging requirements
48
- - Decoupled system integration
49
- - Complex business workflows
50
- - Need event replay capability
51
-
52
- ## Cloud-Native Tool Comparison
53
-
54
- ### Container Orchestration
55
-
56
- | Tool | Complexity | Ecosystem | Scaling | Multi-cloud | Production Ready |
57
- |------|------------|-----------|---------|-------------|------------------|
58
- | **Kubernetes 1.31.x** | High | Massive | Excellent | Yes | Yes |
59
- | **Docker Swarm** | Low | Limited | Good | Partial | Yes |
60
- | **AWS ECS** | Medium | AWS only | Good | No | Yes |
61
- | **Nomad** | Medium | HashiCorp | Good | Yes | Yes |
62
-
63
- **Recommendation**: Kubernetes 1.31.x for production, Docker Compose for local dev.
64
-
65
- ### Service Mesh
66
-
67
- | Tool | Complexity | Features | Performance | Maturity |
68
- |------|------------|----------|-------------|----------|
69
- | **Istio 1.21.x** | High | Comprehensive | Good | Mature |
70
- | **Linkerd 2.14.x** | Low | Core features | Excellent | Mature |
71
- | **Consul Connect** | Medium | Full stack | Good | Mature |
72
- | **AWS App Mesh** | Medium | AWS native | Good | Growing |
73
-
74
- **Recommendation**: Istio 1.21.x for full features, Linkerd for simplicity.
75
-
76
- ### Message Brokers
77
-
78
- | Tool | Throughput | Durability | Ordering | Complexity | Use Case |
79
- |------|------------|------------|----------|------------|----------|
80
- | **Apache Kafka 3.7.x** | Very High | Excellent | Partition | High | Event streaming, logs |
81
- | **RabbitMQ 3.13.x** | High | Good | Queue | Medium | Task queues, RPC |
82
- | **Redis Streams 7.2.x** | Very High | Good | Stream | Low | Real-time, lightweight |
83
- | **Amazon SQS** | Medium | Excellent | Best-effort | Low | Serverless, AWS |
84
- | **NATS 2.10.x** | Very High | Good | Stream | Low | Microservices messaging |
85
- | **Apache Pulsar 3.2.x** | Very High | Excellent | Partition | High | Multi-tenancy, geo-replication |
86
-
87
- **Recommendation**: Kafka 3.7.x for event streaming, RabbitMQ 3.13.x for task queues, NATS for lightweight microservices messaging.
88
-
89
- ### Observability Stack Comparison
90
-
91
- | Stack | Traces | Metrics | Logs | Complexity | Cost |
92
- |-------|--------|---------|------|------------|------|
93
- | **OpenTelemetry + Prometheus + Jaeger + ELK** | Yes | Yes | Yes | High | OSS |
94
- | **Datadog** | Yes | Yes | Yes | Low | High |
95
- | **New Relic** | Yes | Yes | Yes | Low | High |
96
- | **AWS X-Ray + CloudWatch** | Yes | Yes | Yes | Medium | Medium |
97
- | **Grafana Cloud** | Yes | Yes | Yes | Low | Medium |
98
-
99
- **Recommendation**: OpenTelemetry 1.24.0 + Prometheus 2.48.x + Jaeger 1.51.x for vendor-neutral OSS stack.
100
-
101
- ### Database Selection Matrix
102
-
103
- | Database | Type | Scalability | Consistency | Query Flexibility | Use Case |
104
- |----------|------|-------------|-------------|-------------------|----------|
105
- | **PostgreSQL 16.x** | SQL | Vertical + Read Replicas | Strong ACID | SQL + JSONB | Relational, complex queries |
106
- | **MongoDB 8.0.x** | Document | Horizontal (Sharding) | Tunable | Flexible schema | Rapid prototyping, catalogs |
107
- | **Redis 7.2.x** | Key-Value | Horizontal (Cluster) | Eventual | Limited | Caching, sessions, pub/sub |
108
- | **Cassandra 4.1.x** | Wide-Column | Horizontal | Tunable | CQL | Time-series, write-heavy |
109
-
110
- **Recommendation**: PostgreSQL 16.x as default, MongoDB 8.0.x for schema flexibility.
111
-
112
- ## Deployment Strategies
113
-
114
- ### Blue-Green Deployment
115
-
116
- **Pattern**:
117
- - Two identical production environments (Blue = current, Green = new)
118
- - Switch traffic after validation
119
- - Instant rollback capability
120
-
121
- **Pros**:
122
- - Zero downtime
123
- - Easy rollback
124
- - Full validation before switch
125
-
126
- **Cons**:
127
- - Double infrastructure cost
128
- - Data migration complexity
129
- - Requires load balancer
130
-
131
- **Best for**: Critical services with infrequent releases.
132
-
133
- ### Canary Deployment
134
-
135
- **Pattern**:
136
- - Gradually shift traffic to new version (5% → 25% → 50% → 100%)
137
- - Monitor metrics at each stage
138
- - Auto-rollback on errors
139
-
140
- **Pros**:
141
- - Risk mitigation
142
- - Real-world testing
143
- - Minimal infrastructure duplication
144
-
145
- **Cons**:
146
- - Requires advanced routing (Istio)
147
- - Longer deployment time
148
- - Version compatibility required
149
-
150
- **Best for**: User-facing services with high traffic.
151
-
152
- **Istio 1.21.x Implementation**:
153
- ```yaml
154
- apiVersion: networking.istio.io/v1beta1
155
- kind: VirtualService
156
- metadata:
157
- name: backend-canary
158
- spec:
159
- hosts:
160
- - backend.example.com
161
- http:
162
- - match:
163
- - headers:
164
- x-canary:
165
- exact: "true"
166
- route:
167
- - destination:
168
- host: backend
169
- subset: v2
170
- - route:
171
- - destination:
172
- host: backend
173
- subset: v1
174
- weight: 90
175
- - destination:
176
- host: backend
177
- subset: v2
178
- weight: 10
179
- ```
180
-
181
- ### Rolling Update
182
-
183
- **Pattern**:
184
- - Incrementally replace instances (pod-by-pod)
185
- - Kubernetes default strategy
186
- - Health checks control rollout
187
-
188
- **Pros**:
189
- - Built-in Kubernetes support
190
- - No extra infrastructure
191
- - Automatic rollback on failure
192
-
193
- **Cons**:
194
- - Version compatibility required
195
- - Slower than blue-green
196
- - Mixed versions during rollout
197
-
198
- **Best for**: Standard microservices deployments.
199
-
200
- **Kubernetes Configuration**:
201
- ```yaml
202
- spec:
203
- replicas: 10
204
- strategy:
205
- type: RollingUpdate
206
- rollingUpdate:
207
- maxSurge: 2
208
- maxUnavailable: 1
209
- ```
210
-
211
- ### A/B Testing (Feature Flags)
212
-
213
- **Pattern**:
214
- - Route users to different features based on criteria
215
- - Measure business metrics
216
- - Gradual feature rollout
217
-
218
- **Pros**:
219
- - Business metric validation
220
- - User segmentation
221
- - Independent of deployment
222
-
223
- **Cons**:
224
- - Code complexity (feature flags)
225
- - Requires analytics
226
- - Technical debt if not cleaned
227
-
228
- **Best for**: Product experiments, new features.
229
-
230
- **Tools**: LaunchDarkly, Split.io, Unleash, AWS AppConfig.
231
-
232
- ## Monitoring and Observability Setup
233
-
234
- ### OpenTelemetry 1.24.0 Integration
235
-
236
- **Step 1: Instrument Application**:
237
- ```python
238
- from opentelemetry import trace
239
- from opentelemetry.sdk.trace import TracerProvider
240
- from opentelemetry.sdk.trace.export import BatchSpanProcessor
241
- from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
242
-
243
- trace.set_tracer_provider(TracerProvider())
244
- tracer = trace.get_tracer(__name__)
245
-
246
- otlp_exporter = OTLPSpanExporter(endpoint="otel-collector:4317")
247
- span_processor = BatchSpanProcessor(otlp_exporter)
248
- trace.get_tracer_provider().add_span_processor(span_processor)
249
- ```
250
-
251
- **Step 2: Deploy Collector**:
252
- ```yaml
253
- apiVersion: apps/v1
254
- kind: Deployment
255
- metadata:
256
- name: otel-collector
257
- spec:
258
- template:
259
- spec:
260
- containers:
261
- - name: otel-collector
262
- image: otel/opentelemetry-collector:0.92.0
263
- ports:
264
- - containerPort: 4317 # OTLP gRPC
265
- - containerPort: 4318 # OTLP HTTP
266
- ```
267
-
268
- **Step 3: Configure Backends**:
269
- ```yaml
270
- # otel-collector-config.yaml
271
- receivers:
272
- otlp:
273
- protocols:
274
- grpc:
275
- http:
276
-
277
- processors:
278
- batch:
279
-
280
- exporters:
281
- prometheus:
282
- endpoint: "0.0.0.0:8889"
283
- jaeger:
284
- endpoint: "jaeger:14250"
285
- elasticsearch:
286
- endpoints: ["http://elasticsearch:9200"]
287
-
288
- service:
289
- pipelines:
290
- traces:
291
- receivers: [otlp]
292
- processors: [batch]
293
- exporters: [jaeger]
294
- metrics:
295
- receivers: [otlp]
296
- processors: [batch]
297
- exporters: [prometheus]
298
- logs:
299
- receivers: [otlp]
300
- processors: [batch]
301
- exporters: [elasticsearch]
302
- ```
303
-
304
- ### Prometheus 2.48.x Setup
305
-
306
- **Step 1: Install Prometheus Operator**:
307
- ```bash
308
- helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
309
- helm install prometheus prometheus-community/kube-prometheus-stack \
310
- --set prometheus.prometheusSpec.retention=30d \
311
- --set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.resources.requests.storage=50Gi
312
- ```
313
-
314
- **Step 2: ServiceMonitor for Application**:
315
- ```yaml
316
- apiVersion: monitoring.coreos.com/v1
317
- kind: ServiceMonitor
318
- metadata:
319
- name: backend-metrics
320
- spec:
321
- selector:
322
- matchLabels:
323
- app: backend
324
- endpoints:
325
- - port: metrics
326
- interval: 15s
327
- ```
328
-
329
- **Step 3: Alerting Rules**:
330
- ```yaml
331
- apiVersion: monitoring.coreos.com/v1
332
- kind: PrometheusRule
333
- metadata:
334
- name: backend-alerts
335
- spec:
336
- groups:
337
- - name: backend
338
- interval: 30s
339
- rules:
340
- - alert: HighErrorRate
341
- expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
342
- for: 5m
343
- labels:
344
- severity: critical
345
- annotations:
346
- summary: "High error rate detected"
347
- ```
348
-
349
- ### Jaeger 1.51.x Deployment
350
-
351
- **All-in-One (Development)**:
352
- ```bash
353
- kubectl create deployment jaeger --image=jaegertracing/all-in-one:1.51
354
- kubectl expose deployment jaeger --port=16686 --target-port=16686 --type=LoadBalancer
355
- ```
356
-
357
- **Production (with Elasticsearch)**:
358
- ```bash
359
- helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
360
- helm install jaeger jaegertracing/jaeger \
361
- --set provisionDataStore.cassandra=false \
362
- --set provisionDataStore.elasticsearch=true \
363
- --set storage.type=elasticsearch \
364
- --set storage.elasticsearch.host=elasticsearch-master \
365
- --set storage.elasticsearch.port=9200
366
- ```
367
-
368
- ### Grafana 10.x Dashboards
369
-
370
- **Key Dashboards**:
371
- - **RED Metrics**: Rate, Errors, Duration per service
372
- - **Kubernetes Cluster**: Node/pod resource usage
373
- - **Database Performance**: Query latency, connection pool
374
- - **Application Logs**: Error rate trends, log volume
375
-
376
- **Import Community Dashboards**:
377
- - Kubernetes Cluster Monitoring (ID: 7249)
378
- - Node Exporter Full (ID: 1860)
379
- - PostgreSQL Database (ID: 9628)
380
-
381
- ## Performance Benchmarking
382
-
383
- ### Load Testing Tools
384
-
385
- | Tool | Protocol | Complexity | Reporting | Use Case |
386
- |------|----------|------------|-----------|----------|
387
- | **k6** | HTTP, gRPC, WebSocket | Low | Good | API load testing |
388
- | **Gatling** | HTTP, WebSocket | Medium | Excellent | Complex scenarios |
389
- | **JMeter** | HTTP, JDBC, JMS, etc. | High | Good | Enterprise testing |
390
- | **Locust** | HTTP, custom | Low | Good | Python-based scripting |
391
-
392
- **Recommendation**: k6 for API load testing, Gatling for complex user journeys.
393
-
394
- ### k6 Example (HTTP API)
395
-
396
- ```javascript
397
- import http from 'k6/http';
398
- import { check, sleep } from 'k6';
399
-
400
- export let options = {
401
- stages: [
402
- { duration: '2m', target: 100 }, // Ramp-up
403
- { duration: '5m', target: 100 }, // Steady
404
- { duration: '2m', target: 0 }, // Ramp-down
405
- ],
406
- thresholds: {
407
- http_req_duration: ['p(95)<500'], // 95% under 500ms
408
- http_req_failed: ['rate<0.01'], // Error rate < 1%
409
- },
410
- };
411
-
412
- export default function () {
413
- let res = http.get('https://api.example.com/users');
414
- check(res, {
415
- 'status is 200': (r) => r.status === 200,
416
- 'response time < 500ms': (r) => r.timings.duration < 500,
417
- });
418
- sleep(1);
419
- }
420
- ```
421
-
422
- **Run**:
423
- ```bash
424
- k6 run --vus 100 --duration 10m load-test.js
425
- ```
426
-
427
- ### Performance Targets
428
-
429
- | Metric | Target | Good | Excellent |
430
- |--------|--------|------|-----------|
431
- | **API Response Time (p95)** | <500ms | <200ms | <100ms |
432
- | **Error Rate** | <1% | <0.1% | <0.01% |
433
- | **Throughput** | 1000 req/s | 5000 req/s | 10000 req/s |
434
- | **Database Query (p95)** | <100ms | <50ms | <10ms |
435
- | **CPU Usage** | <70% | <50% | <30% |
436
- | **Memory Usage** | <80% | <60% | <40% |
437
-
438
- ## Security Best Practices
439
-
440
- ### OWASP API Security Top 10 2023 Checklist
441
-
442
- - [ ] **API1: Broken Object Level Authorization**
443
- - Implement per-object access control checks
444
- - Validate user owns the resource before access
445
- - Use UUIDs instead of sequential IDs
446
-
447
- - [ ] **API2: Broken Authentication**
448
- - Use industry-standard auth (OAuth 2.0, OpenID Connect)
449
- - Implement rate limiting on auth endpoints
450
- - Rotate secrets regularly
451
-
452
- - [ ] **API3: Broken Object Property Level Authorization**
453
- - Use response DTOs to filter sensitive fields
454
- - Validate input against allowed fields (no mass assignment)
455
- - Implement role-based field visibility
456
-
457
- - [ ] **API4: Unrestricted Resource Consumption**
458
- - Enforce pagination (max 100 items per page)
459
- - Implement rate limiting (Redis-based)
460
- - Set request timeouts and size limits
461
-
462
- - [ ] **API5: Broken Function Level Authorization**
463
- - Validate roles/permissions on every endpoint
464
- - Deny by default, allow explicitly
465
- - Use middleware for consistent checks
466
-
467
- - [ ] **API6: Unrestricted Access to Sensitive Business Flows**
468
- - Implement CAPTCHA for critical flows
469
- - Detect and block automated abuse
470
- - Monitor for unusual patterns
471
-
472
- - [ ] **API7: Server Side Request Forgery (SSRF)**
473
- - Validate and whitelist URLs
474
- - Block private IP ranges
475
- - Use network segmentation
476
-
477
- - [ ] **API8: Security Misconfiguration**
478
- - Disable debug mode in production
479
- - Remove unnecessary endpoints
480
- - Use security headers (HSTS, CSP, etc.)
481
-
482
- - [ ] **API9: Improper Inventory Management**
483
- - Document all API versions
484
- - Deprecate old versions gracefully
485
- - Monitor for unauthorized endpoints
486
-
487
- - [ ] **API10: Unsafe Consumption of APIs**
488
- - Validate external API responses
489
- - Set timeouts for external calls
490
- - Handle partial failures gracefully
491
-
492
- ### Rate Limiting Implementation (Redis 7.2.x)
493
-
494
- **Token Bucket Algorithm**:
495
- ```python
496
- import redis
497
- import time
498
-
499
- def is_rate_limited(user_id: str, max_requests: int = 100, window: int = 60) -> bool:
500
- """Token bucket rate limiting with Redis."""
501
- r = redis.Redis(host='localhost', port=6379, db=0)
502
- key = f"rate_limit:{user_id}"
503
-
504
- current = r.get(key)
505
- if current is None:
506
- r.setex(key, window, 1)
507
- return False
508
-
509
- current = int(current)
510
- if current >= max_requests:
511
- return True
512
-
513
- r.incr(key)
514
- return False
515
- ```
516
-
517
- **Sliding Window (Accurate)**:
518
- ```python
519
- def sliding_window_rate_limit(user_id: str, max_requests: int = 100, window: int = 60) -> bool:
520
- """Sliding window rate limiting with Redis sorted sets."""
521
- r = redis.Redis(host='localhost', port=6379, db=0)
522
- key = f"rate_limit:{user_id}"
523
- now = time.time()
524
-
525
- # Remove old entries
526
- r.zremrangebyscore(key, 0, now - window)
527
-
528
- # Count requests in window
529
- count = r.zcard(key)
530
- if count >= max_requests:
531
- return True
532
-
533
- # Add current request
534
- r.zadd(key, {str(now): now})
535
- r.expire(key, window)
536
- return False
537
- ```
538
-
539
- ## Cost Optimization
540
-
541
- ### Resource Right-Sizing
542
-
543
- **Kubernetes Resource Requests/Limits**:
544
- ```yaml
545
- resources:
546
- requests:
547
- cpu: "100m" # Minimum guaranteed
548
- memory: "128Mi"
549
- limits:
550
- cpu: "500m" # Maximum allowed
551
- memory: "512Mi"
552
- ```
553
-
554
- **Guidelines**:
555
- - Set requests based on p50 usage
556
- - Set limits based on p99 usage
557
- - Enable Vertical Pod Autoscaler for recommendations
558
-
559
- ### Auto-Scaling Strategies
560
-
561
- **Horizontal Pod Autoscaler (HPA)**:
562
- ```yaml
563
- apiVersion: autoscaling/v2
564
- kind: HorizontalPodAutoscaler
565
- metadata:
566
- name: backend-hpa
567
- spec:
568
- scaleTargetRef:
569
- apiVersion: apps/v1
570
- kind: Deployment
571
- name: backend
572
- minReplicas: 2
573
- maxReplicas: 10
574
- metrics:
575
- - type: Resource
576
- resource:
577
- name: cpu
578
- target:
579
- type: Utilization
580
- averageUtilization: 70
581
- - type: Resource
582
- resource:
583
- name: memory
584
- target:
585
- type: Utilization
586
- averageUtilization: 80
587
- ```
588
-
589
- **Cluster Autoscaler**:
590
- - Automatically adds/removes nodes based on pending pods
591
- - Works with cloud provider APIs (AWS, GCP, Azure)
592
- - Set min/max node count per node group
593
-
594
- ### Caching Strategies for Cost Reduction
595
-
596
- **CDN for Static Assets**:
597
- - CloudFront, CloudFlare: ~$0.085/GB
598
- - Reduces origin server load by 80-90%
599
- - Set long TTLs (1 year) with versioned URLs
600
-
601
- **Redis Caching**:
602
- - Cache database queries (TTL: 5-60 minutes)
603
- - Session storage (reduce database connections)
604
- - Precomputed results (expensive calculations)
605
-
606
- **Database Connection Pooling**:
607
- - PgBouncer: Reduce database connections by 10x
608
- - Typical pool size: 10-20 connections per app instance
609
- - Significant cost savings on managed databases
610
-
611
- ### Container Registry Comparison
612
-
613
- | Registry | Security Scanning | Geo-Replication | Cost | Integration | Use Case |
614
- |----------|------------------|------------------|------|-------------|----------|
615
- | **Docker Hub** | Free tier limited | No | Free/Paid | Universal | Public images |
616
- | **Amazon ECR** | Yes (Inspector) | Yes | Pay-per-GB | AWS native | AWS workloads |
617
- | **Google Artifact Registry** | Yes (Container Analysis) | Yes | Pay-per-GB | GCP native | GCP workloads |
618
- | **Azure ACR** | Yes (Defender) | Yes | Pay-per-GB | Azure native | Azure workloads |
619
- | **Harbor 2.10.x** | Yes (Trivy) | Yes | Self-hosted | Kubernetes | On-premises, multi-cloud |
620
- | **GitHub Container Registry** | Yes (Dependabot) | Global CDN | Free for public | GitHub Actions | CI/CD integration |
621
-
622
- **Recommendation**: Harbor 2.10.x for self-hosted multi-cloud, cloud-native registries for vendor lock-in scenarios.
623
-
624
- ### API Gateway Comparison
625
-
626
- | Gateway | Protocol | Performance | Features | Complexity | Use Case |
627
- |---------|----------|-------------|----------|------------|----------|
628
- | **Kong 3.6.x** | HTTP, gRPC, WebSocket | Excellent | Plugins, mTLS, rate limiting | Medium | Enterprise APIs |
629
- | **Ambassador (Emissary-Ingress) 3.9.x** | HTTP, gRPC | Good | Kubernetes-native, Istio integration | Medium | Kubernetes microservices |
630
- | **Traefik 3.0.x** | HTTP, TCP, gRPC | Good | Auto-discovery, Let's Encrypt | Low | Docker/Kubernetes |
631
- | **NGINX Ingress Controller** | HTTP, TCP, UDP | Excellent | Battle-tested, low overhead | Low | General-purpose |
632
- | **AWS API Gateway** | HTTP, WebSocket | Good | Serverless, AWS Lambda | Low | AWS serverless |
633
- | **Envoy Proxy 1.29.x** | HTTP/1.1, HTTP/2, gRPC | Excellent | L7 proxy, xDS API | High | Service mesh (Istio) |
634
-
635
- **Recommendation**: Kong 3.6.x for feature-rich APIs, NGINX Ingress for simplicity, Envoy 1.29.x for service mesh integration.
636
-
637
- ### CI/CD Platform Comparison
638
-
639
- | Platform | Cloud/Self-hosted | Kubernetes Support | Pipeline as Code | Cost | Use Case |
640
- |----------|-------------------|-------------------|------------------|------|----------|
641
- | **GitHub Actions** | Cloud | Yes (Kubernetes runners) | YAML | Free tier + paid | GitHub integration |
642
- | **GitLab CI/CD** | Both | Yes | YAML | Free tier + paid | GitLab ecosystem |
643
- | **Jenkins 2.440.x** | Self-hosted | Yes (Kubernetes plugin) | Groovy/Declarative | Free (self-hosted) | Enterprise, customization |
644
- | **ArgoCD 2.10.x** | Self-hosted | Yes (GitOps) | YAML (Git) | Free | Kubernetes GitOps |
645
- | **Tekton Pipelines 0.56.x** | Self-hosted | Yes (cloud-native) | YAML | Free | Kubernetes-native CI/CD |
646
- | **CircleCI** | Cloud | Yes | YAML | Free tier + paid | Fast feedback loops |
647
-
648
- **Recommendation**: ArgoCD 2.10.x for Kubernetes GitOps, GitHub Actions for GitHub-native workflows, Jenkins for complex enterprise pipelines.
649
-
650
- ## References
651
-
652
- - Kubernetes. "Kubernetes Best Practices." https://kubernetes.io/docs/concepts/configuration/overview/ (2025-10-22)
653
- - Istio. "Performance and Scalability." https://istio.io/latest/docs/ops/deployment/performance-and-scalability/ (2025-10-22)
654
- - OpenTelemetry. "Getting Started." https://opentelemetry.io/docs/instrumentation/ (2025-10-22)
655
- - Prometheus. "Best Practices." https://prometheus.io/docs/practices/ (2025-10-22)
656
- - OWASP. "API Security Project." https://owasp.org/www-project-api-security/ (2025-10-22)
657
- - CNCF. "Cloud Native Landscape." https://landscape.cncf.io/ (2025-10-22)
658
- - Kafka. "Apache Kafka Documentation." https://kafka.apache.org/documentation/ (2025-10-22)
659
- - Harbor. "Harbor Documentation." https://goharbor.io/docs/ (2025-10-22)
660
- - ArgoCD. "ArgoCD Documentation." https://argo-cd.readthedocs.io/ (2025-10-22)