ADR-0015: Ports, Providers И Adapters
Статус
Accepted
Контекст
Сервисы используют PostgreSQL, Redis, Elasticsearch, ClickHouse, MassTransit и external providers. Без единых ports/adapters инфраструктурная логика попадет в handlers и domain models.
Решение
Applicationопределяет ports.Infrastructureреализует providers/adapters.- Provider DTO живут только в
Infrastructure.Integrations.<ProviderName>. - Shared data access providers задают общие contracts для PostgreSQL, Redis, Elasticsearch, ClickHouse, object storage.
- Domain получает только value objects и snapshots.
Последствия
- External systems изолируются anti-corruption layer.
- Тесты могут мокать ports без подмены domain behavior.
- Provider-specific изменения не ломают Application/Domain.
Ссылки
- Data Access Providers
- Context Providers And Middlewares