Kestrel vs NSQ: What are the differences?
What is Kestrel? Simple, distributed message queue system. Kestrel is based on Blaine Cook's "starling" simple, distributed message queue, with added features and bulletproofing, as well as the scalability offered by actors and the JVM.
What is NSQ? A realtime distributed messaging platform. NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day. It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee. See features & guarantees.
Kestrel and NSQ belong to "Message Queue" category of the tech stack.
Some of the features offered by Kestrel are:
- Written by Robey Pointer
- Starling clone written in Scala (a port of Starling from Ruby to Scala)
- Queues are stored in memory, but logged on disk
On the other hand, NSQ provides the following key features:
- support distributed topologies with no SPOF
- horizontally scalable (no brokers, seamlessly add more nodes to the cluster)
- low-latency push based message delivery (performance)
Kestrel and NSQ are both open source tools. NSQ with 15.6K GitHub stars and 2.03K forks on GitHub appears to be more popular than Kestrel with 2.8K GitHub stars and 326 GitHub forks.