Как объединить базы данных через API Gateway?

Возникла необходимость выполнить следующую работу (для курсовой).
Имеются 3 базы данных, одна например для админа, вторая для менеджера, третья для пользователя, где будут новости и отзывы.
Суть в том, что базы данных раздельные, в каждой определенное наполнение и это наполнение можно просматривать и в некоторых, частных случаях редактировать из разных приложений (к каждому приложению привязана своя БД) и сделать нужно это через API Gateway. Но сколько бы я не трудился на просторах интернета, я не могу понять как это реализовать.
Подскажите статью, видео ролик, да хоть бы правильный запрос в браузере. Очень желательно для Python 3.
Все что я понимаю, так это только то, что должна быть библиотека.
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 2
vhood
@vhood
Не забывайте отмечать решения
API Gateway - это паттерн микросервисной архитектуры. Это отдельный сервис, фронтенд взаимодействуют с ним, а он перенаправляет запросы.

Есть еще один паттерн, Saga. Тоже отдельный сервис.
API Gateway может послать запрос на изменение данных, которые хранятся в двух разных базах, в Saga, он отправит запрос нескольким разным сервисам и если один их них отвалится - отправит другому запрос на откат.

Для просмотра можно вобще четвертую базу взять и сервис. В этой базе будут лежать данные максимально подготовленные под запросы, т.е. что-бы запрос, например, можно было построить без джойнов и точно использовались бы индексы. Это из CQRS.

Резюмируя, могу посоветовать погуглить Saga и CQRS, а лучше прочесть книгу Микросервисы
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
Gateway просто проксирует запросы к сервисам.
Поэтому нужно создать отдельный сервис:
1. Который будет агрегировать ваши данные из других сервисов.
2. Или который будет содержать минимальную копию данных других сервисов, что являются "источниками знаний".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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