Rowan: ZeroMQ, I don't know what all the fuss is. I mean, it's just sockets!

Kim: Yeah, right. It's just sockets. Course, it's totally portable so you don't have to handle all the weird stuff different operating systems ask you to do.

Rowan: Yeah, but apart from portability, ZeroMQ is just sockets!

Kim: Oh, and it delivers you whole messages, instead of a stream of bytes. That's kind of useful.

Rowan: Well, message framing, of course. But apart from framing and portability, ZeroMQ is just sockets!

Kim: The background I/O comes in handy. You can chuck it messages as fast as you like and it'll queue them and send them in the background.

Rowan: Well, obviously! But apart from queuing and background I/O, portability…

Amari: Don't forget that it works in pretty much every language and lets them all talk to each other.

Kim: And you connect one socket to many endpoints, or bind it, or mix that all together!

Rowan: Yeah, but apart from being able to create any topology,…

Amari: Oh, and I like the fact it's got a huge community behind it.

Kim: And don't forget it's free. And really fast!

Rowan: Sure, sure, but apart…

Amari: And how the same sockets can talk between threads, or over TCP or over multicast.

Kim: And the patterns… I mean, it's like every socket is a tiny server. And batching.

Amari: Don't forget its bounded buffers, those are really useful.

Kim: Have you tried inproc messaging for multithreading? It works so well, it's amazing.

Rowan: But… but…

Amari: And even though it really focuses on message delivery, it's simple to build all kinds of reliability on top

Kim: And its inbuilt elliptic curve encryption with perfect forward security, that's pretty awesome

Rowan: OK, OK!

Kim: …

Amari: …

Rowan: APART FROM portability, message framing, super fast asynchronous I/O, queuing, support for every bloody language anyone cares about, huge community, price tag of zero, mind-blowing performance, protection from memory overflows, loads of internal consistency checks, patterns like pub/sub and request/reply, batching, and seamless support for inter-thread transport as well as TCP, TIPC, and reliable multicast, not to mention strong security at the transport level, and full backwards compatibility with versions back to 2-dot-something, ZEROMQ IS JUST SOCKETS!!!

Amari: Sure!

Kim: You forgot zero-copy and automatic TCP reconnection…