У нас есть монолитное c веб-приложение CRUD (назовите его A
), которое выполняет определенную задачу. Теперь у нас есть новое требование, более или менее независимое от A
функционально. Аудитория разная, время использования, функционал и др. c. все разные. Из-за этого мы решили встроить это в новый сервис B
.
Проблема началась, когда B
потребовалась информация для аутентификации от A
. Предвидя, что это может повториться, мы извлекли аутентификацию из A
и поместили ее в качестве отдельного провайдера C
. И A
, и B
могут аутентифицироваться на C
, который теперь содержит информацию о пользователе.
Следующий вопрос, который возник, был о том, что профили пользователей A
, используемые для хранения профилей пользователей, но теперь, мы переместили большую часть этого в C
. Однако есть несколько дополнительных полей, которые нам нужно сохранить и которые нужны B
. Вопрос в том, должен ли я
- сохранить все поля в
C
, поскольку это служба аутентификации и место для хранения всей пользовательской информации. - Хранить ее в
B
поскольку это единственное место, где оно будет необходимо.
В общем, мой вопрос заключается в том, как решить, как разделить монолит на отдельные части, как разделить данные и что мне делать с вещами. например, userid
s, которые являются "общими" для всех служб?