
NATS – An open-source, high-performance, lightweight messaging system - stargrave
http://nats.io/
======
perlgeek
I'd like to know more about:

* clustering - what kinds of clusters are supported? How do they scale? Do they favor availability or consistency?

* security - is there any authentication? authorization for certain resources? TLS?

* guarantuees for delivery? Transactional modes?

* what does the wire protocol look like? Support for meta data?

I clicked around the website and documentation a bit, and didn't find any
answers.

~~~
tylertreat
> * clustering - what kinds of clusters are supported? How do they scale? Do
> they favor availability or consistency?

There is no persistence so consistency is irrelevant. NATS does everything in
the name of availability to the point of dropping connections for slow
consumers.

> * security - is there any authentication? authorization for certain
> resources? TLS?

TLS is planned, not sure on timeline. It sounds like Apcera has plans for some
form of authentication and multitenancy as well.

> * guarantuees for delivery? Transactional modes?

At-most-once delivery. No transactions. There may be some form of more
reliable delivery coming in the future, but I'm not sure of the details.

> * what does the wire protocol look like? Support for meta data?

Very simple text-based protocol. I don't think it's formally documented
anywhere currently though.

~~~
vitroth
The NATS philosophy on guaranteed delivery is that _delivery_ isn't what you
care about, its the _action_ taken as a result of delivery. If the far end
system receives your request but crashes before processing it, was it really
received? The business logic of most applications requires end-to-end
acknowledgement of transactions, so NATS considers that an application
problem.

(Disclaimer: I work for Apcera)

------
jacques_chester
NATS is legit -- Derek Collison has experience in messaging systems going back
a very long way.

Cloud Foundry still has a bunch of NATS-based services because Derek was one
of the founders of the first versions, back when Cloud Foundry was a VMWare
skunkworks effort (VCAP).

Disclaimer: I work for Pivotal Labs, a division of Pivotal, which contributes
the largest amount of engineering effort to Cloud Foundry. Apcera is,
nominally, a competitor. I should also mention that my understanding of CF's
early history is based on accounts I've heard and might be flawed.

------
jedisct1
Nats is really neat, and super simple to deploy.

For many use cases, the lack of persistence might be a showstopper, though.

~~~
bjflanne
Hi guys I'm on the Community/Ecosystem side of NATS...timely comment.
Persistence is actually on the roadmap but we only just discussed end of
August at our Bay Area
meetup:[https://youtu.be/jxpYszUi8JQ](https://youtu.be/jxpYszUi8JQ)

Please feel free to ping me with further questions, comments, ideas etc if
you'd like to chat further: brian@apcera.com

~~~
bjflanne
Also, I should add we've made some significant updates since the article you
referenced, and are currently performing additional benchmarking, but some
examples:
[https://twitter.com/derekcollison/status/635541819393245184](https://twitter.com/derekcollison/status/635541819393245184)

It would be helpful to understand what you are trying to achieve, and what
characteristics in messaging infrastructure are most important to you?

------
fbomb
How does performance compare to 0mq?

~~~
justinsaccount
This is covered on the other page they link to:

[http://bravenewgeek.com/dissecting-message-
queues/](http://bravenewgeek.com/dissecting-message-queues/)

"ZeroMQ is capable of sending over 5,000,000 messages per second but is only
able to receive about 600,000/second. In contrast, nanomsg sends shy of
3,000,000/second but can receive almost 2,000,000."

So.. nanomsg is 10x faster. Why would one use nats?

~~~
zo1
>" _So.. nanomsg is 10x faster. Why would one use nats?_ "

The article comparing the performance of all those messaging systems
conveniently "groups" them into two groups. Brokerless, and brokered. Putting
Nats into the latter, despite it not sharing any of the main things that we
are used to with a brokered system. I.e. Transactions and persistance.

So, it's safe to say that in that context and those properties, there is no
reason to use NATS over nanomsg.

------
eikenberry
At least once or at most once?

~~~
tylertreat
NATS is at-most-once delivery, which is partly why it's so fast. Sounds like
there are plans to introduce stronger guarantees in the future though.

