А какую задачу решаете? Вообще очередей между бэком и фронтом нет (нормальных), Но можно сделать асинхронщину через websocket/server-send-messages/etc. И через специальный сервис, который будет это интегрировать с бэком (их сколько-то готовых есть, внутри обычно redis pub/sub)
Я бы скорее сделал отдельным сервисом (несколькими, для разных фронтов), но это просто про привычку не светить бэком в интернет. В теории можно и контроллером внутри, но скорее всего станет неудобно и небезопасно
Тем более что bff можно писать сразу, до того, как что-то изменилось на существующих бэков. А потом их объединять в один монолит (а потом разделять в микросервисы), клиентам будет пофиг
Задача именно для брокера - обеспечить доставку сообщений (запросов) и их обработку. Например, в контексте выставления счета на заказ в интернет-магазине.
Не факт. Там много факторов: нагрузка, SLA, CI/CDl/CDp, A/B тестирование и переход с коробок/аутсорса на собственный код, отказоусточивость, [гео]резервирование и т.д.
Ну, для отказоустойчивости и георезервирование - облака скорее помешают, свои, по крайней мере. Managed - может быть, но сильно зависит от проекта (комплаенс, окупаемость и т.п.)
Сервис выставления счёта может быть недоступен какое-то время, а заказ ушёл. Чтобы он не потерялся, кидаем в очередь и дожидаемся, пока сервис поднимется. Далее обрабатываем сообщение из брокера. Или я что-то упускаю?)