Architecture Decision Records¶
This directory holds Architecture Decision Records (ADRs): short documents that capture a significant decision, its context, and its consequences. They are the durable record of why the project looks the way it does.
When to write one¶
Write an ADR when a decision is non-obvious, hard to reverse, or likely to be questioned later — e.g. choice of framework, an external protocol, an API shape, or a tooling trade-off. Don't write one for routine, easily reversible choices.
How to add one¶
- Copy
0000-template.mdto the next number, e.g.0005-short-title.md. - Fill in Context, Decision, Consequences, and Alternatives.
- Set the status (
Proposed→Accepted→ optionallySuperseded by ADR-NNNN). - Add it to the index below and link it from the relevant doc/code.
ADRs are immutable once Accepted: to change a decision, write a new ADR that supersedes the old one rather than editing history.
Index¶
| ADR | Title | Status |
|---|---|---|
| 0001 | Use Kubebuilder + controller-runtime | Accepted |
| 0002 | Manage MQ via the mqweb REST API behind an MQAdmin port | Accepted |
| 0003 | Decouple connection details with QueueManagerConnection | Accepted |
| 0004 | Use Task as the task runner | Accepted |
| 0005 | Keep tooling lean; borrow discipline, not org overhead | Accepted |
| 0006 | Project name and module identity (Kurator) | Superseded by 0018 |
| 0007 | Structured logging with logr and slog | Accepted |
| 0008 | Generate changelogs with git-cliff | Accepted |
| 0009 | Validating admission webhooks (no MQ at admission) | Accepted |
| 0010 | Drift-based MQ reconciliation (DEFINE + DISPLAY) | Accepted |
| 0011 | Layered testing strategy (mock → envtest → MQ → kind) | Accepted |
| 0012 | Operator scope — existing Queue Manager only | Accepted |
| 0013 | Finalizers and deletion (MQ object before CR removal) | Accepted |
| 0014 | MQ error taxonomy and requeue strategy | Accepted |
| 0015 | Kubernetes Events on status transitions only | Accepted |
| 0016 | Release supply chain (image, SBOM, signing, scan) | Accepted |
| 0017 | PCF adapter behind the MQAdmin port | Accepted (scaffold only; full adapter parked) |
| 0018 | Rename project Kurator → MKurator | Accepted |
| 0019 | OSS maturity posture (docs site, governance, supply chain) | Accepted |
| 0020 | CI merge-gate matrix (L0–L5 ↔ workflows) | Accepted |
| 0021 | Attribute API shape — typed fields + attributes escape hatch | Accepted |
| 0022 | Deletion and adoption policies for MQ object CRs | Accepted |
| 0023 | Connection client cache lifecycle and Secret handling | Accepted |
| 0024 | MQSC command construction hygiene (structured-first) | Accepted |
| 0025 | CEL-first admission validation; webhooks for stateful checks | Accepted |
| 0026 | v1beta1 graduation plan — conversion scope and deprecation policy |
Accepted |