мы реализуем (или, точнее, перереализуем) распределенную программную систему. У нас есть разные процессы (возможно, работающие на разных компьютерах), которые должны взаимодействовать друг с другом (назовем их клиентами). Мы не хотим, чтобы они напрямую общались друг с другом, а вместо этого используем какой-то брокер сообщений.
Так как мы хотим избежать самостоятельной реализации брокера сообщений, мы хотели бы использовать существующую реализацию. Но мы не находим протокол или систему, полностью удовлетворяющую нашим требованиям.
MQTT с его механизмом публикации-подписки кажется хорошим и может даже использоваться для связи точка-точка (где некоторые конкретные темы подписываются только определенными клиентами). Но он (как и JSM, STOMP и т. д.) асинхронный. Отправитель отправляет сообщение брокеру и не знает, будет ли оно доставлено получателю. Мы хотим, чтобы отправитель был проинформирован об успешной доставке или истекшем времени ожидания (когда никто не получает сообщение).
Есть ли доступный протокол/реализация, который обеспечивает такую функциональность синхронного обмена сообщениями? (Однако было бы неплохо, если бы была возможна и асинхронная доставка)