дальнейшем хочу разнести на несколько микросервисов (авторизация/регистрация, отправление почты) + добавить другие сервисы. Схема данных у всех этих приложений будет одна. Возникает вопрос как «правильно» и эффективно разграничить доступ к базе данных тому или иному приложению. Пока вижу только такие варианты:
- Разделить одну базу несколько (в соответствии к тому или иному сайту) и, если необходим доступ к базе из другого приложения, делать запросы по API к тому или иному сервису. Однако возникает вопрос как «держать актуальной» одну и ту же модель данных (например, User) между несколькими приложениями? Хранить в yml файле где-нибудь на s3 и перед запуском проверять на изменения в ней?
- Для каждого приложения схема данных будет полной, но с ограничениями на ту или иную таблицу, а при изменении в таких таблицах реплицировать новые данные на все остальные базы. И тут так же возникает вопрос об одной и той же схеме данных в нескольких приложениях. Как бы вы решали такую проблему? Заранее благодарю!
эх, а я думал ты поздравляешь так
А в чем проблема иметь одну базу, доступную всем?
Обсуждают сегодня