grpc and zeromq comparsion

async req / res communication (inproc or remote) between nodes Both libraries allow for synchronous or asynchronous communication depending on how to implement the communication. See this page for gRPC: http://www.grpc.io/docs/guides/concepts.html. Basically gRPC allow for typical HTTP synchronous request/response or a ‘websocket-like’ bidirectional streaming. For 0mq you can setup a simple REQ-REP connection which is … Read more

what is JMS good for? [closed]

JMS and messaging is really about 2 totally different things. publish and subscribe (sending a message to as many consumers as are interested – a bit like sending an email to a mailing list, the sender does not need to know who is subscribed high performance reliable load balancing (message queues) See more info on … Read more

Why use AMQP/ZeroMQ/RabbitMQ

what makes them better than writing your own library? When rolling out the first version of your app, probably nothing: your needs are well defined and you will develop a messaging system that will fit your needs: small feature list, small source code etc. Those tools are very useful after the first release, when you … Read more

.net service bus recommendations? [closed]

NServiceBus is growing in popularity. It is open source as well. Here is a Hanselminutes episode with Scott Hanselman talking with Udi Dahan about NServiceBus to help grok it. You should definitely evaluate using it. UPDATE: There’s also a DNR TV episode which shows what it’s like to build an NServiceBus solution from scratch here: … Read more

Difference between stream processing and message processing

In traditional message processing, you apply simple computations on the messages — in most cases individually per message. In stream processing, you apply complex operations on multiple input streams and multiple records (ie, messages) at the same time (like aggregations and joins). Furthermore, traditional messaging systems cannot go “back in time” — ie, they automatically … Read more

What’s the purpose of Kafka’s key/value pair-based messaging?

Kafka uses the abstraction of a distributed log that consists of partitions. Splitting a log into partitions allows to scale-out the system. Keys are used to determine the partition within a log to which a message get’s appended to. While the value is the actual payload of the message. The examples are actually not very … Read more