Мы начали мигрировать наш существующий проект в микросервисную архитектуру.Пройдя много видео / лекций, мы пришли к выводу, что служба должна выполнять одну задачу и только одну задачу и должна справляться с ней.Службы должны быть разработаны вокруг Noun
и Verb
.
У нас есть объект, который в основном выполняет операции CRUD.Теперь операции добавления, обновления и удаления являются наименее используемыми операциями, но запросы GET слишком высоки по сравнению с этими операциями.Как правило, обновление / добавление / удаление выполняется администраторами.
Мы думаем о том, чтобы разбить сущность CRUD на две службы
- EntityCUDService (создать / обновить / удалить)
- EntityLookupService (get)
Теперь обе эти службы указывают на одну и ту же коллекцию в монго или говорят на некоторый SQL.Теперь, если EntityCUDService
внес некоторые изменения в коллекцию / таблицу, то EntityLookupService
завершится неудачей.
Мы слышали о поддержании семантического контроля версий, это звучит нормально, но мы также слышали, что микросервисы не должны совместно использовать модель / источник данных.Так что было бы оптимальным решением для этого, когда у нас есть тонны получений, но десятки обновлений / добавлений одной и той же сущности
Любая помощь очень ценится.