2 ms·
What is this used for? Is this kinda sorta like a Kafka? Do you implement message bus with this? Queue task workers? Change data capture stuff like secondary in
by jitl 6y ago
What is this used for? Is this kinda sorta like a Kafka? Do you implement message bus with this? Queue task workers? Change data capture stuff like secondary indexes or materialized views?
As an outsider without deep experience in this space, I struggle to evaluate this kind of software. When would I want this VS things-that-look-like-it? What about hosted offerings like SQS? (Maybe I should read a book)
- lkramer 6y agoWe use it for internal messaging between services. Particular between systems owned by different teams. It's reliable, easy to configure, have good out of the box backoff. We have used Kafka in the past and it just felt too heavy for what we needed.
- mnutt 6y agoIt's good for simple message passing between services, but has some caveats at scale. One nice thing is that you can read through the source in an afternoon and get a decent understanding of how it works. Segment has a good blog post about its pros: https://segment.com/blog/scaling-nsq/ https://segment.com/blog/scaling-nsq/ and later, some of the issues they faced at scale that caused them to move off of it: https://segment.com/blog/the-10m-engineering-problem/ https://segment.com/blog/the-10m-engineering-problem/ My company has used nsq in a very similar way with a similar number of messages over almost a decade at this point, and have come to the same conclusions that Segment did.