REST API <-> REST API тесно связаны в время выполнения , и при наличии нескольких уровней сервисов это может привести к каскадным сбоям и сложным сценариям обработки ошибок.Кроме того, одна служба может переполнить другую, вызывая отказ в обслуживании.
Принимая во внимание, что подключение приложения -> q -> приложения слабо связано во время выполнения.Когда одна система не работает, очередь просто заполняется.Системы обмена сообщениями также выступают в качестве естественного буфера в сценарии «одна система производит слишком быстро», поскольку вторая система потребляет данных со скоростью, с которой вторая система может обрабатывать скорость, с которойпроизводитель отправляет данные.
При этом отправка запросов с запросом через обмен сообщениями добавляет ненужную задержку, поскольку «запрос» API фактически является запросом с опросом, а проблема быстрого получения и каскадных сбоев обычносмягчены.
TLDR: Вы захотите оба.API для очередей и обмена сообщениями для команд.CQRS можно применить здесь:
C - команда .. (создать, сохранить, удалить, выполнить какое-либо действие и т. Д.) Отправить через обмен сообщениями Q - запрос .. (поиск, список, получить и т. Д.) Отправить через API