0

I have a distributed application written in Node.js and want to broadcast messages to all of the nodes. What I need is:

  • Guaranteed delivery (at least once)
  • Horizontal scalability
  • Completely dezentralized architecture

So far, I have taken a look at the various modules for Node.js such as Scuttlebutt, node-gossip & all of its variants. But they all fail with respect to guaranteed delivery.

I also have taken a look at Serf and Consul: While the first failed with the guaranteed delivery, the second only works if at least (n/2)+1 nodes are reachable, which is too weak for my application.

I have also taken a look at various message queues, message distribution systems and protocols such as RabbitMQ, nsq and MQTT. They all fail for one or more of the above mentioned things.

Any idea how I could solve this (without having to go write my own one)?

PS: I know that this is basically a question for an advice for a module or a tool, but I don't know where else to ask, and I think that the intention is a perfectly valid one for any developer working on distributed applications.

Golo Roden
  • 140,679
  • 96
  • 298
  • 425
  • What about kue or Optimalbits' bull, coupled with Redis? The two modules aren't extremely complex, so they could be a launchpad if you need to write or customize. Bull is (in my opinion) better because it uses some of Redis' current functionality while kue is still behind on many fronts. – Matthew Bakaitis Dec 07 '15 at 13:57
  • Using Redis, it is not completely dezentralized any more, but you depend on a number of Redis servers, don't you? – Golo Roden Dec 07 '15 at 13:58
  • Yeah. I think the "completely decentralized" part is the tough one. – Matthew Bakaitis Dec 07 '15 at 14:07

0 Answers0