Как правильно связать простые микросервисы с общими данными?

Пытаюсь понять как лучше.. Имея простые данные типа Пользователи, Контакты, Сообщения - разделить их на три микросервиса
1. Пользователи - список по ID плюс данные каждого и поиск
2. Контакты - список ID + ID собеседника для каждого пользователя, свойства контакта, фильтры
3. Сообщения - список ID + ID собеседника, текст сообщения, статус, поиск

В списке контактов должна быть информация о собеседнике из Пользователи и желательно начало текста сообщения как превью из Сообщения

А в Сообщениях информация о собеседнике(Пользователи) и статус Контакта
---

Как правильно взаимодействовать с ними? Дублировать данные в Контакты как некоторую инфу о контакте(имя, возраст, город) и часть сообщения? Или делать по три запроса на один список контактов...

Данные запрашивает фронтенд по REST и весь Вью там
  • Вопрос задан
  • 931 просмотр
Пригласить эксперта
Ответы на вопрос 2
@AlexNomad
На мой взгляд, не совсем верно выделять микросервисы "Пользователи", "Контакты", "Сообщения". Вас тянет парадигма ООП (сущности, существительные). А микросервисы про бизнес-задачи (глаголы).
Сравните:
Пользователи, Контакты, Сообщения
и
Авторизация, Обмен сообщениями.

Соответственно "Авторизация" имеет свою БД со списком всех зашедших пользователей и все (!) инструменты (фильтры, поиски и т.п.) для работы с ними.
Аналогично "Обмен сообщениями" имеет свою базу данных со всеми сообщениями и все (!) инструменты по работе и пересылке сообщений.
Над ними может быть (а может и не быть) объединяющий микросервис "Объединить" (Gateway).

П.С. Думайте глаголами.
Ответ написан
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
собирать на бекенде с трех запросов один или на фронте, это уж как большое нравится.
В этом прелесть мискросервисов.
Дублировать никуда ничего не надо.

И конечно надо учесть что будет если один из сервисов ложится.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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