Я нахожусь в процессе обучения преобразованию моего монолитного приложения GAE в архитектуру микросервисов.
Я понимаю, что приложение разделено на службы, которые могут взаимодействовать друг с другом.Различные категории запросов обрабатываются различными службами, как указано в файле dispatch.yaml
.
Как мы определяем, что сделать в службу?Рассмотрим веб-сайт доски объявлений о работе, который имеет следующие функциональные возможности:
- Существует две роли пользователя:
JobSeeker
и Company
- Компании могут опубликовать
Job
сущность - Соискатели могут создать
JobApplication
сущность (что соответствует Job
) - Для обеих ролей пользователя может потребоваться проверка подлинности
- Компании управляют своими собственными
CompanyProfile
- JobSeekers управляют своим собственным списком
JobApplications
и своими JobProfiles
Каков руководящий процесс мышления, который идет в разделение нашего приложения на микросервисы?