38 lines
862 B
Markdown
38 lines
862 B
Markdown
|
|
# ADR-008: PostgreSQL Adapters for Production
|
||
|
|
|
||
|
|
## Status
|
||
|
|
Accepted
|
||
|
|
|
||
|
|
## Context
|
||
|
|
In-memory adapters are sufficient for testing but not for production. We need persistent storage.
|
||
|
|
|
||
|
|
## Decision
|
||
|
|
Implement PostgreSQL adapters that implement the same repository interfaces as in-memory adapters:
|
||
|
|
|
||
|
|
- PostgresFieldSessionRepository
|
||
|
|
- PostgresMissionRepository
|
||
|
|
- PostgresDecisionCaseRepository
|
||
|
|
- PostgresArtifactRegistry
|
||
|
|
|
||
|
|
Key principles:
|
||
|
|
- Same interface as in-memory adapters
|
||
|
|
- Domain unchanged
|
||
|
|
- Application unchanged
|
||
|
|
- Only adapter implementation changes
|
||
|
|
|
||
|
|
## Consequences
|
||
|
|
|
||
|
|
### Positive
|
||
|
|
- Production-ready persistence
|
||
|
|
- Same test suite verifies both implementations
|
||
|
|
- Easy to swap implementations
|
||
|
|
|
||
|
|
### Negative
|
||
|
|
- Requires PostgreSQL instance
|
||
|
|
- Need migrations
|
||
|
|
- More complex setup
|
||
|
|
|
||
|
|
## Related
|
||
|
|
- ADR-006: In-Memory Adapters for Testing
|
||
|
|
- ADR-009: Persistence Independence
|