zlacker

[return to "On SQS"]
1. polski+BF[view] [source] 2019-05-27 14:30:54
>>mpweih+(OP)
Does anyone know a good, low overhead out-of-process message queue, that's lightweight enough that it can be useful for communicating between processes on the same machine, but if necessary it can scale beyond it? In case of a single-machine product that comprises of several services, a message queue can sometimes be useful for pull model, but adding RabbitMQ to the stack makes installation and ops much more complex than customers deem acceptable.

I know some people use Akka with Persistence module, but I would welcome other alternatives.

◧◩
2. gizzlo+dJ[view] [source] 2019-05-27 15:07:21
>>polski+BF
Guess it depends on the definition of "queue". Potentials:

  - https://nsq.io/
  - https://nats.io/
◧◩◪
3. polski+qp1[view] [source] 2019-05-27 21:13:52
>>gizzlo+dJ
Seems like NATS streaming would fit my case - have you heard of any real world deployments that use it ? Are there any larger issues that don't make it a good choice ?
◧◩◪◨
4. maniga+XD1[view] [source] 2019-05-28 00:14:01
>>polski+qp1
NATS Streaming is not as well tested and has some design issues that make scaling hard. NATS itself has a new version 2 that has a protocol update and NATS Streaming should follow with a new design as well, but I would recommend other options if you want persistence.
◧◩◪◨⬒
5. polski+SU1[view] [source] 2019-05-28 04:37:16
>>maniga+XD1
What are the design flaws that you have in mind? Is it ok for a couple of nodes or even then it would have trouble to keep up with a medium load? Or maybe the design flaws are to do with providing durability and other guarantees?

What other options would you recommend, that can provide at least once delivery and are lighweight enough not to require zookeeper etc?

◧◩◪◨⬒⬓
6. maniga+6j3[view] [source] 2019-05-28 17:53:05
>>polski+SU1
Nats streaming isn't just a persistence layer to NATS. It's an entirely different system that basically acts as a client to NATS and then records messages it sees. Basically think of how you would design a persistent queue on top of the ephemeral NATS pub/sub and that's what NATS streaming is.

Here's a good post (and series) about distributed logs and NATS design issues: https://bravenewgeek.com/building-a-distributed-log-from-scr...

[go to top]