Architecture Decision Records (ADRs) document key design decisions for the ASAP protocol.
| ADR | Title | Status |
|---|---|---|
| ADR-001 | ULID for ID Generation | Accepted |
| ADR-002 | Async-First API Design | Accepted |
| ADR-003 | JSON-RPC 2.0 Binding | Accepted |
| ADR-004 | Pydantic for Models | Accepted |
| ADR-005 | State Machine Design for Task Lifecycle | Accepted |
| ADR-006 | Security Defaults | Accepted |
| ADR-007 | FastAPI for Server | Accepted |
| ADR-008 | httpx for Client | Accepted |
| ADR-009 | Snapshot vs Event-Sourced State Persistence | Accepted |
| ADR-010 | Python 3.13+ Requirement | Accepted |
| ADR-011 | Per-Sender Rate Limiting | Accepted |
| ADR-012 | Error Taxonomy | Accepted |
| ADR-013 | MCP Integration Approach | Accepted |
| ADR-014 | Testing Strategy (TDD, Property-Based) | Accepted |
| ADR-015 | Observability Design (trace_id, correlation_id) | Accepted |
| ADR-016 | Versioning Policy (SemVer, Contract Tests) | Accepted |
| ADR-017 | Failure Injection Strategy (Chaos Testing) | Accepted |
| ADR-018 | Streaming Transport (SSE for HTTP) | Accepted |
| ADR-019 | Unified Versioning and Content Negotiation | Accepted |
To create a new ADR, copy template.md and fill in the sections. Use MADR format.
- Accepted: Decision implemented and in use
- Superseded: Replaced by another ADR
- Deprecated: No longer applicable
- Proposed: Under discussion