@domanskiy

Как выводить вложенные зависимости (реляции) данных между микросервисами?

Есть сервис отвечающий за адреса - Address
Есть сервисы Organization, User, SailPoint

Сейчас у меня монолит. Одна БД
Таблица организаций. Каждая организация ссылается на адрес таблицы адресов. Такая же ситуация с пользователями и торговыми точками.
При выводе ответа, реляция подгружает данные со связанных таблиц.
{address_id: 1,
address: {данные записи 1 из таблицы адресов}
}

Не могу понять. как такое можно организовать при микросервисной архитектура. Например с оркестратором.
Мне опять же нужно выводить ответ с вложенными связанными данными. Но теперь эти данные в разных сервисах, т.к. у каждого сервиса своя БД.
На ум приходит, собрать все address_id полученных организаций, запросить данные из микросервиса адресов.
Затем пройтись по списку организаций и вложить в каждую свой объект адреса.
Или есть решение проще?
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Бог дал Моисею одну из заповедей "Не сотвори себе кумира", в Unix есть философия утилита должна делать одно дело, быстро и без ошибок, AWS недавно сказало что излишнее количество микросервисов нужно сокращать.

В вашем случае я советую прислушаться к этим советам. Все эти 4 сервиса не разъединять (хотя SailPoint все же стоит отделить).
Дальше, в самой базе хранить id всех этих сущностей, Ведь допустим для SailPoint важны атрибуты времени работы, адреса и организации, а все остальное можно подтянуть уже позже отображения карточки.

Ну как то вот так. хотя это ИМХО
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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