Как лучше организовать общение с микросервисом?
=================================================

 Доброго времени суток.  

Имеется приложение на Node.JS в связке с кластером.  

Задача: при определенном событии от пользователя поставить задачу на выполнение к API, который выполнит цепочку запросов и вернет ответ.  
  

Проблема: на Node.JS подняты кластеры, однако для корректной работы API по моему мнению требуется абстрагировать его в отдельный процесс, ибо нужен единый setTimeout для опрашивания API и единый ограничитель RPS.  
  

Решение: с кластера на сервис API отправлять сообщение через какой-нибудь брокер с подтверждающей очередью, далее чтобы этот сервис обрабатывал этот запрос, сам же заносил результат работы в БД и отправлял уведомление через Redis pub/sub об окончании работы, если пользователь онлайн. Если нет - информация подтянется через БД при следующем заходе пользователя.  
  

Вопросы:  

1) Нормально ли организовывать одностороннее общение между основным приложением и микросервисом через брокер сообщений?  

2) Нормально ли делегировать на микросервис работу с БД основного приложения? По факту он будет лишь обновлять какие-то данные, которые изначально основное приложение туда их инициализирует.  
  

Да и в целом верно ли я двигаюсь? 

**То что вы прочтете ниже относительно универсальной серебрянной пули нет.**  

1) Вообще я рекомендовал бы это делать на прямую через сокеты.  

2) Ни что не истина все дозволено, и очень сильно зависит от задач. Я не думаю, что смогу рассказать это точно так же как [Илья Климов *ссылка на лекцию по микросервисам*](https://youtu.be/t6nkR_CJ-0A)