Гарантированная трансляция сообщений в распределенной системе с использованием Node.js
У меня есть распределенное приложение, написанное на Node.js, и я хочу транслировать сообщения на все узлы. Что мне нужно это:
- Гарантированная доставка (хотя бы один раз)
- Горизонтальная масштабируемость
- Полностью децентрализованная архитектура
До сих пор я рассмотрел различные модули для Node.js, такие как Scuttlebutt, node-gossip и все его варианты. Но все они терпят неудачу в отношении гарантированной доставки.
Я также взглянул на Serf и Consul: хотя первый отказал с гарантированной доставкой, второй работает, только если достижимо по крайней мере (n/2)+1 узлов, что слишком мало для моего приложения.
Я также рассмотрел различные очереди сообщений, системы распространения сообщений и протоколы, такие как RabbitMQ, nsq и MQTT. Все они терпят неудачу для одной или нескольких из вышеупомянутых вещей.
Любая идея, как я мог бы решить это (без необходимости писать свой собственный)?
PS: я знаю, что это в основном вопрос к совету для модуля или инструмента, но я не знаю, где еще спросить, и я думаю, что намерение является совершенно обоснованным для любого разработчика, работающего над распределенными приложениями.