Architecture Decision Records
Architecture Decision Records (ADRs) document significant architectural choices made in the Ignixa FHIR project. ADRs are maintained in the repository at docs/adr/.
Core Design Principle
All architectural decisions support the F5 Developer Experience: a developer can press F5 and run the solution with minimal setup.
ADR Index
Authorization & Security
| ADR | Title | Status |
|---|---|---|
| 2501 | RBAC Authorization with Capability Statement Enforcement | Accepted |
Architecture & Design
| ADR | Title | Status |
|---|---|---|
| 2509 | Vertical Slice Architecture | Accepted |
| 2509 | InMemory Search Architecture | Accepted |
| 2509 | Bundle Processing with Channels | Accepted |
| 2510 | CapabilityStatement Without Firely SDK | Accepted |
Data & Storage
| ADR | Title | Status |
|---|---|---|
| 2510 | Multi-Tenancy and Data Partitioning | Proposed |
| 2510 | NDJSON File-Based Storage | Accepted |
| 2510 | Four-Scope Caching Architecture | Accepted |
Operations & Features
| ADR | Title | Status |
|---|---|---|
| 2510 | Background Jobs with DurableTask | Accepted |
| 2510 | Three-Tier Validation Architecture | Accepted |
| 2510 | Conditional CRUD Operations | Accepted |
| 2510 | FHIR Patch Operations | In Progress |
| 2512 | $member-match Operation | Proposed |
| 2512 | Narrative Generator Library | Accepted |
| 2512 | Patient Summary Generation | Proposed |
ADR Format
Each ADR follows this structure:
# ADR {YYMM}: {Short Title}
## Status
Proposed | Accepted | Deprecated | Superseded
## Context
What problem are we solving?
## Decision
What did we decide?
## Consequences
**Positive:** Benefits
**Negative:** Trade-offs
Creating New ADRs
- Create file:
docs/adr/adr-{YYMM}-{short-title}.md - Use the template above
- Keep it concise (40-100 lines)
- Focus on decision and rationale, not implementation details