2f0ab18e81
- 4 PostgreSQL adapter stubs (Session, Mission, DecisionCase, Artifact) - Migration 001: Initial schema (sessions, missions, artifacts, decision_cases) - Persistence Independence Test: 6 tests verifying same behavior across InMemory and PostgreSQL implementations - ADR-008: PostgreSQL Adapters for Production - ADR-009: Persistence Independence Architecture Quality Gates: - Domain unchanged - Application unchanged - Only adapter implementation changes - Same test suite runs against both implementations Next: PR-003B — Schema & Migrations, PR-003C — Integration Tests, PR-003D — Unit of Work / Transactions
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
|