Architecture Decision Records (ADRs)
This directory contains architecture decision records for the Prescriptoo API project.
What is an ADR?
An Architecture Decision Record (ADR) captures an important architectural decision made along with its context and consequences.
ADR List
| # | Title | Status |
|---|---|---|
| ADR-001 | Modular Monolith Architecture | Accepted |
| ADR-002 | Table Prefix over Separate Schemas | Accepted |
| ADR-003 | Event-Driven Architecture with Swappable Bus | Accepted |
| ADR-004 | Doctor as Role (Not Separate Service) | Superseded |
| ADR-005 | Doctor Verification in Admin Service | Accepted |
| ADR-006 | Separate Notification Service | Accepted |
| ADR-007 | Policy-Based Access Control (PBAC) | Superseded by ADR-017 |
| ADR-008 | Service Boundaries and Responsibilities | Accepted |
| ADR-009 | API Route Naming Convention | Accepted |
| ADR-010 | Go Workspace Structure | Accepted |
| ADR-011 | One Use Case per File | Accepted |
| ADR-012 | Explicit Public Service Contracts for Synchronous Module Calls | Accepted |
| ADR-013 | Doctor Service and Separate Organization Affiliations | Accepted |
| ADR-014 | Subscription Plans, Feature Snapshots, and Manual Billing | Accepted |
| ADR-015 | Separate Patient Service and Prescription HTTP Contracts | Accepted |
| ADR-016 | Medicine catalog API contracts | Accepted |
| ADR-017 | Scoped Authorization Service | Accepted |
| ADR-018 | Shared Audit Service with Owner-Managed HTTP APIs | Accepted |
ADR Format
Each ADR follows this format:
markdown
# ADR-XXX: Title
## Status
Accepted / Proposed / Deprecated / Superseded
## Context
What is the issue we're deciding on?
## Decision
What did we decide?
## Rationale
Why did we make this decision?
## Consequences
What are the positive and negative outcomes?
## Related Decisions
Links to related ADRs.How to Add a New ADR
- Create a new file:
NNN-title-in-lowercase.md - Use the next available number
- Follow the format above
- Update this README with the new entry