Live data from Hacker News

NSQ – A realtime distributed messaging platform

nsq.io

11–20 of 64 posts

Re: NSQ – A realtime distributed messaging platform

#11
post #5
post #2

We are using NSQ at Hailo for sending and receiving billions of messages every day. It scales incredibly well and is extremely reliable. We'd be happy to speak more about this with anyone who's interested.

How do you handle reliability? I'm reading http://nsq.io/overview/features_and_guarantees.html and I'm curious how you've set up your architecture to handle node failures without losing messages, or if losing messages is acceptable in your use case. I'm also curious if you've had issues with duplicated delivery, where a message is delivered more than once, and how you've handled that case.

Hi. Good question. We actually have both use cases. In the case where we require reliability and guaranteed delivery we publish to multiple nodes and standard channels that persist messages in the case of subscribers disconnecting or overflow in what can't be buffered in memory. In the other case we just publish once and can use ephemeral channels. We scale clusters depending on usage but start with a minimum of 3 and use nsqlookupd to find topics in the cluster. In the case of things that can't handle duplicate deliveries we offload deduping to simple things memcached.

Re: NSQ – A realtime distributed messaging platform

#12
post #2

We are using NSQ at Hailo for sending and receiving billions of messages every day. It scales incredibly well and is extremely reliable. We'd be happy to speak more about this with anyone who's interested.

Can one use NSQ as a replacement for Kafka?

Posed this question to the creator of NSQ, Matt Reiferson just a few minutes ago. His response https://twitter.com/imsnakes/status/559827559806808069

Re: NSQ – A realtime distributed messaging platform

#13
post #7

How does this relate to mqtt?

MQTT is a wire protocol for connection a message sender and receiver, but leaves the actual messaging architecture (brokers, P2P, etc) unspecified. NSQ appears to include its own proprietary wire format, as well as a full im-memory messaging architecture.

Re: NSQ – A realtime distributed messaging platform

#16
post #15

Looks very interesting, though their protocol seems very MQTT-like. I'd be interested whether they considered (and rejected) other protocols before writing their own).

Here is the HN thread in which NSQ was announced, and similar questions were asked.

https://news.ycombinator.com/item?id=4631994

Although I don't know how the system has evolved since then.

Re: NSQ – A realtime distributed messaging platform

#17
I'm glad these new projects are coming on, and this one seems to be very forthright about its limitations, but I'm just putting this in the bucket with all of the other messaging systems that provide a minimum feature set.

I haven't seen much on the market recently that offers things like (first-class) persistence, guaranteed ordering, guaranteed delivery, or any of the other more complex distribution patterns. That's why I'm still using ActiveMQ. I'm pretty happy with it, so I suppose I'm not really looking for a replacement, but I still wonder what benefit people are getting from these newer systems.

Re: NSQ – A realtime distributed messaging platform

#18
post #17

I'm glad these new projects are coming on, and this one seems to be very forthright about its limitations, but I'm just putting this in the bucket with all of the other messaging systems that provide a minimum feature set. I haven't seen much on the market recently that offers things like (first-class) persistence, guaranteed ordering, guaranteed delivery, or any of the other more complex distribution patterns. That'…

I would assume its the ease of making the systems highly available and/or scalable. Scaling ActiveMQ can be a pain once you exceed the capacity of a single broker, and the standard HA setup requires shared file systems with non-broken file locks which are fairly complicated to get in cloud environments.

Re: NSQ – A realtime distributed messaging platform

#19
post #17

I'm glad these new projects are coming on, and this one seems to be very forthright about its limitations, but I'm just putting this in the bucket with all of the other messaging systems that provide a minimum feature set. I haven't seen much on the market recently that offers things like (first-class) persistence, guaranteed ordering, guaranteed delivery, or any of the other more complex distribution patterns. That'…

(project author)

NSQ is as much about what it doesn't do as it is what it does. To a certain extent this mirrors, and was inspired by, the language's philosophy (Go) [1].

Also, NSQ was designed to replace an existing home-grown system deployed at scale. This dictated a lot of the initial requirements (and in certain cases excluded off-the-shelf tools).

When we left the experimental phase we realized we had built something that was useful to others, and it turns out that despite not having the features you've identified it can be incredibly effective in lots of use cases that don't need stronger guarantees.

[1] If I'm being honest, NSQ was a vehicle for adoption of Go at bitly as well as the project we used to learn the language. This was a huge risk at the time (almost 3 years ago) but one that has certainly paid off.

Re: NSQ – A realtime distributed messaging platform

#20
post #2

We are using NSQ at Hailo for sending and receiving billions of messages every day. It scales incredibly well and is extremely reliable. We'd be happy to speak more about this with anyone who's interested.

Can one use NSQ as a replacement for Kafka?

Kafka offers persistence, which seems extremely rare in distributable queue. (Is it even available outside of Kafka?)

On that note, what is everyone using these queues for that they can ignore durability?

Post reply on HN