Why it was built this way
Every architecture and operations decision made on a live production service — recorded as problem → options → decision → verification. New here? Start with the featured ADRs below.
How to read an ADR
- 1
Problem
What situation or constraint forced the decision
- 2
Options
Alternatives considered and their trade-offs
- 3
Decision
What was chosen, and why
- 4
Verification
How we confirmed the decision worked as intended
Featured ADRs
The decisions that matter most for understanding AlgoSu
ADR-001: Gateway → Identity DB Separation
Why read this Where service-level DB boundaries began — splitting the identity DB out of the gateway
ADR-002ADR-002: Outbox Pattern Adoption Review
Why read this The Outbox pattern that delivers events across services without loss
ADR-026ADR-026: Sprint 130 Operations Incident — Stuck Rollouts Left for 6 Days + SealedSecret Controller Key Mismatch Debt
Why read this Recovering from a stuck-rollout production incident and paying off SealedSecret debt
ADR-027ADR-027: aether-gitops Branch Discipline — Enforce Work Branch + PR
Why read this Branch discipline that keeps GitOps auto-deploys safe
ADR-028ADR-028: Dev Server (k3d / Separate Dev Cluster) Separation — Structural Block on Direct Production Modification
Why read this Separating prod and dev clusters so experiments never break production
Browse by topic
Go deep on the topics you care about.
Operations & Recovery
Real production incidents and the decisions that recovered and prevented them
problem-service SP196 Migration Fix (tags jsonb DEFAULT cast failure — ERROR 42804)
Phase 3 External-Work Re-verification + Two Deferred Items Resolved (commitlint oracle scope + Build Blog SSG required check)
Phase 3 External Track Closure + PR #365 Close + Cumulative Carryover x2 (CI Python 3.13 + Harness Checkup Seed)
Discord Decommission + BOT_TOKEN Reclamation — Closing the `.claude-tools/` Cleanup Pipeline
Redis Stats Cache — Dashboard Direct DB Aggregation → Cache
submission CacheModule Circular Dependency Hotfix + StudyMemberGuard Redis Consolidation
Carryover seed cleanup — relocate sprint-87-plan.md to docs/planning/
Batch resolution of carryover seeds — filterAdjacency P2 · .claude-tools Phase 2 · prom-client Case C/D
Production Incident Recovery (submission/identity rollout stuck) + Monitoring Strengthening + SealedSecret Debt Clearance + Carryover Cleanup
ADR-003: Redis/RabbitMQ ACL Separation Design
ADR-025: Gateway OAuth Error Code Normalization
ADR-026: Sprint 130 Operations Incident — Stuck Rollouts Left for 6 Days + SealedSecret Controller Key Mismatch Debt
Agent Orchestration
How the multi-agent dispatch and cross-review workflow evolved
Echelon 1 Tier Model Migration to claude-opus-4-8
Critic Agent Establishment — Codex-based Cross Code Review
Oracle Dispatch and Agent Workflow Improvements
Oracle tmux Auto-Dispatch Pipeline
CI · GitOps
AI-generated code verification pipelines and GitOps deploy discipline
Batch resolution of carryover seeds — filterAdjacency P2 · .claude-tools Phase 2 · prom-client Case C/D
Python Compatibility Fix — asyncio.get_event_loop + Pydantic class Config
CI Actual Measurement Data + Operations Convention Standardization + Commit Gate Automation
ADR-027: aether-gitops Branch Discipline — Enforce Work Branch + PR
ADR-028: Dev Server (k3d / Separate Dev Cluster) Separation — Structural Block on Direct Production Modification
ADR-029: Consolidate Infra Deployment Definition SSOT into aether-gitops (Retire AlgoSu Parallel Manifests)
Data & Problem Sets
Data boundaries, problem datasets, and event delivery decisions
Redis Stats Cache — Dashboard Direct DB Aggregation → Cache
Programmers Dataset Bundling + Gateway External Integration
ADR-001: Gateway → Identity DB Separation
ADR-002: Outbox Pattern Adoption Review
Security & Secrets
Auth, ACL, and secret management decisions
SSOT Backlog Resolution — Internal Key Naming Revision · Sprint-250 ADR Frontmatter · ADR Count · c-ares CVE
AI Analysis Context Enrichment — Group Analysis Problem Injection + Programmers Crawler Module
Codebase-wide Security & Improvement Audit + Sprint Roadmap (ADR-030)
Security quick wins — ADR-030 S-1/S-2/S-4/S-5/S-8/Q-5
Operational procedure hardening — ADR-030 S-6/Q-3 (docs only)
Supply chain, CSP spike, CI cleanup (ADR-030 roadmap item 5 — closure)
CI Scanner Install Hardening (retry + auth + direct download) + ADR-028 read-only kubeconfig Groundwork
Root-Cause Fix for CI Trivy blog Failure (Unreferenced APK_CACHE_BUST Cache-Bust Bug)
Phase 3 External-Work Re-verification + Two Deferred Items Resolved (commitlint oracle scope + Build Blog SSG required check)
Phase 3 External Track Closure + PR #365 Close + Cumulative Carryover x2 (CI Python 3.13 + Harness Checkup Seed)
Discord Decommission + BOT_TOKEN Reclamation — Closing the `.claude-tools/` Cleanup Pipeline
ADR-003: Redis/RabbitMQ ACL Separation Design
ADR-024: Admin Server-side Authorization Guard — CSR → Server Component Migration
ADR-025: Gateway OAuth Error Code Normalization
ADR-030: Codebase-wide Security & Improvement Backlog and Remediation Roadmap (Sprint 238 Audit)
Product & Platform
User-facing features and platform migration decisions
Blog home landing portfolio revamp + Engineering Editorial design system (Phase 1)
Blog UI/UX revamp — Graph legend/filter + Category 7-class + ADR topic auto-classification (Phase 5)
Full Removal of the Blog ADR Graph Feature
Programmers Dataset Bundling + Gateway External Integration
Full ADR Archive
All 203 ADRs — stats, timeline, and lists by kind