13 / 15
Почему общая база данных на несколько сервисов — антипаттерн и что делать вместо?
Общая база превращает схему таблиц в публичный контракт, который нигде не описан и не версионируется: владелец переименовал колонку — молча сломался сосед, запустил тяжёлый отчёт — соседу поехали таймауты, а инварианты приходится защищать сразу в двух кодовых базах. Хуже всего невидимость: связанность через код видна в ревью и ловится тестами, связанность через схему не видна нигде. Вместо этого — одна база, один владелец: остальные читают через его API, когда нужна свежесть, или держат собственную копию, наполняемую событиями, когда допустима задержка. Отчёты и аналитика уезжают в отдельную витрину. Цена альтернативы — дублирование данных и итоговая согласованность. На время миграции общая база допустима, но со сроком и планом разделения.