8 ms·
Note that NATS on it's own is just a pub/sub system and doesn't have any queuing or persistence. There is no "log". You need the NATS Streaming server for that
by manigandham 7y ago
Note that NATS on it's own is just a pub/sub system and doesn't have any queuing or persistence. There is no "log". You need the NATS Streaming server for that which implements persistence while communicating over NATS.
- afrodc_ 7y agoI was looking into https://github.com/liftbridge-io/liftbridge https://github.com/liftbridge-io/liftbridge. I believe he was a maintainer of NATS streaming and wanted to make something lightweight and Kafka-esque.
- corford 7y agoLiftbridge looks cool but right now you need use their protobuf defs and cook your own client lib if you want bindings outside of go.
- manigandham 7y agoLiftbridge is an experiment and has no real production users. NATS Streaming is already fine for lightweight single-host usage. If you really need to scale to multiple servers then I recommend skipping NATS Streaming and going straight to Kafka or Apache Pulsar.
- dmix 7y agoHave any more lighter-weight recommendations that fit the queuing and persistence category?
- manigandham 7y agoRabbitMQ is another option. Clustering is fragile, but it's fine if you just need a single-node: https://www.rabbitmq.com/ https://www.rabbitmq.com/ There are also proprietary systems like Solace: https://solace.com/ https://solace.com/ Other than that, there are embedded queuing/log libraries or you can just dump the messages into a key/value store or write them out to a file yourself.