Architecture Decision Records¶
Architecture Decision Records (ADRs) capture significant design choices, the alternatives considered, and the rationale for the decision taken. They are immutable historical records — once accepted, an ADR is never edited; superseded decisions reference the newer ADR.
| ADR | Status | Title |
|---|---|---|
| ADR-001 | Accepted — v1.0.0 | Python Namespace Package for openframe.* |
| ADR-002 | Accepted — v1.0.0 | Hexagonal Architecture as the Universal Spine |
| ADR-003 | Accepted — v1.0.0 | Async-first Port Contracts |
| ADR-004 | Accepted — v1.0.0 | Pydantic Settings for Adapter Configuration |
| ADR-005 | Accepted — v1.0.0 | Pure ASGI Middleware for Telemetry |
| ADR-006 | Accepted — v3.0.0 | Unified Port + Lifecycle Contract (supersedes port/health/plugin portions of ADR-002) |
| ADR-007 | Accepted — v3.2.1 | @contract Marker for Cross-Service Schema Governance |
Reading Order¶
- Start with ADR-002 for the overall hexagonal architecture rationale.
- Read ADR-006 to understand what changed in v3.0.0 and why — it supersedes the port, health, and plugin sections of ADR-002.
- Read ADR-007 for the
openframe.core.schemasmarker thatopenframe-schemas(inopenframe-tooling) governs. - ADR-001, ADR-003, ADR-004, and ADR-005 are independent and can be read in any order.