Как принимать решения при построении проекта на микросервисах?
Хочу сделать проект на микросервисной архитектуре. Хочу все сервисы запихать в контейнеры докера. также в контейнер хочу запихнуть nginx, postgresql, kafka.
хочу, чтобы мои сервисы были паблишерами и консюмерами и общались через отправку сообщений в mq. сервисы будут, например, следующие: загрузчик-парсер, mvc сайт, web api. в случае с загрузчиком - всё понятно. сервис ожидает сообщение в определенном топике. когда оно там появляется - сервис начинает свою работу (например, загрузить файл с фтп, распарсить данные, занести в бд, удалить файл с фтп). НО
Вопрос 1: как поступить в данном случае, например, с API? Связать с Nginxom напрямую, или настроить Nginx на публикацию сообщения в топик, из которого слушает API? Вопрос 2 : как поступить с MVC сайтом? напрямую связать его с Nginxom или всё же лучше осуществить обмен данными между mvc сайтом и nginxom через mq?
не знаю как по другому сформулировать вопрос и не могу найти ответ: как будет лучше построить архитектуру проекта.