advanced
Database per service
Давайте каждому service authority над его data model, чтобы schemas развивались independently, принимая query и consistency complexity.
Каждый сервис владеет своей схемой и единственный writer своих данных. Другие сервисы читают только через APIs или events, не shared tables. Это даёт независимую эволюцию схемы, но усложняет cross-service queries, joins и transactional consistency.
Компромисс: автономия и инкапсуляция против reporting, analytics и немедленного read-your-writes между aggregates.
На интервью: объясните dashboard через order и inventory без join между базами.
Типовые ошибки: общая БД с «логическим» разделением; read replicas как integration layer; нарушение инкапсуляции ради удобного SQL.
Чеклист:
- Закрепите write ownership за схемой каждого сервиса.
- Закрывайте query needs через APIs, events или read models.
- Планируйте migrations без cross-schema locks.
- Принимайте eventual consistency для cross-domain reads.