Ni55aN
@Ni55aN

Когда (не) стоит использовать shared database и обойтись без API Gateway?

Заказчик предлагает использовать расшаренную БД под предлогом того, что на разработку с API Gateway мы потратим больше времени и возможны ошибки/проблемы с безопасностью.

За все данные отвечает главное приложение, но со стороны юзера может изменять *не все данные. И только вспомогательное (допустим, оно для админов) может изменять те самые *данные.

Предлагается делать изменение напрямую в базе, в чем я не вижу ни одного преимущества. Синхронизация моделей (в sequelize.js), администрирование БД с целью создания нужных юзеров и предоставления им прав - это не весь список, но достаточно для усложнения разработки.

Какие аргументы предоставить против такого решения? Сталкивались ли вы с таким на практике, и какие преимущества/недостатки в этом проявились?
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Очень много боли от того что хочет от вас заказчик. Сочувствую. Хочется сразу узнать - про какой вы API Gateway говорите ибо есть несколько решений на рынке (надеюсь вы не все с нуля там делаете)

Вообще shared database это плохой дизайн. Да, он работает поначалу, а потом боль. Пользователи вообще должны быть в отдельной системе (Identity Server и все дела).

Раз вы делаете API Gateway то надо понимать что клиентскую часть очень хорошо сделать именно в рамках взаимодействия с API. Когда у вас несколько точек обращения к одним и тем же данным напрямую из базы это увеличивает сложность поддержки и ни разу не линейно. Особенно если и документации не будет.

Деплоить решение станет со временем невозможно - вы сделали небольшое изменение в одной системе, а оно потянуло его везде. Куда лучше сделать различные кэши со стороны всех приложений, использовать пресловутый GraphQL для агрегации и все в таком духе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы