Architecture Decision Records
Architecture Decision Records (ADRs) capture important design decisions with their context, rationale, and consequences. Each ADR follows a standard format: Status, Context, Decision, Consequences, Alternatives.
Accepted ADRs
| # | Title | Date | Summary |
|---|---|---|---|
| 001 | Native TypeScript | 2026-02-16 | Native TypeScript development + compile-before-publish with tsup |
| 003 | Package Decomposition | 2025-12-22 | Modular packages in dependency layers |
| 005 | Input Validation | 2025-12-24 | Protovalidate as primary validation mechanism |
| 006 | Resilience Patterns | 2025-12-24 | Resilience interceptors with cockatiel library |
| 007 | Testing Strategy | 2025-12-24 | node:test runner, 90%+ coverage target |
| 008 | Performance Benchmarking | 2025-12-24 | k6 load testing, p95 < 100ms SLA |
| 009 | Buf CLI Migration | 2026-02-06 | Buf CLI v2 for proto generation + lint |
| 014 | Method Filter Interceptor | 2026-02-07 | Per-method interceptor routing with wildcards |
| 020 | Reflection Proto Sync | 2026-02-07 | 4-phase reflection-based proto synchronization |
| 022 | Protocol Extraction | 2026-02-11 | Healthcheck/Reflection as separate packages |
| 023 | Uniform Registration API | 2026-02-11 | createDefaultInterceptors(), explicit interceptor control |
| 024 | Auth/Authz Strategy | 2026-02-15 | @connectum/auth package with JWT, RBAC, context propagation |
| 025 | Package Versioning Strategy | 2026-02-20 | Two-phase versioning: Fixed for rc, Hybrid after 1.0.0 stable |
Creating a New ADR
- Create
XXX-title.mdusing the template below - Status starts as Proposed
- After review and approval, change to Accepted
- Update this index
markdown
# ADR-XXX: Title
## Status
Proposed -- YYYY-MM-DD
## Context
Why is this decision needed?
## Decision
What did we decide?
## Consequences
### Positive
### Negative
## Alternatives Considered