Задать вопрос
@domanskiy

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

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

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

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

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

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

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

Похожие вопросы