1

I'm looking for a good open source implementation of an inter-process message bus, possibly based on named pipes.

Are there any recommendable ones out there (that are still actively maintained)? My requirements are

  1. Free and open source (so no Tibco Rendezvous, no NServiceBus)
  2. Must be able to easily run under no-admin privileges without any further installations needed (so no RabbitMQ)

I know that WCF+NamedPipes are a popular choice for this, but it feels to me like the structure of my application makes using WCF increasingly invoncenient, so would like to explore alternatives.

I've stumbled upon NetMQ.ReactiveExtensions which looks very interesting in principle, it uses Protobuf + NetMQ. But I'm not sure how reliable it really is. At first glance e.g. it sends 3 parts for each message (topic string, code to identify onNext/onError/onCompleted state for RX), but I'm wondering if it wouldn't get mixed up if some subscriber connects while a message is being transmitted and misses e.g. the first part.

Anyway - any recommendations welcome!


Probably not relevant to the question, but just for context what I'm trying to do:

In principle, my application consists of 3 components / 3 kinds of processes:

A. Microsoft Excel AddIn B. A code editor C. (Optional) a debugger Usually, when Excel (A) is started, it will spawn B, which in turn will spawn C. And communication will look like A <-> B <-> C.

You can, of course, start several instances of Excel (A) - and each one will spawn and communicate with their own B.

In some circumstances, an instance of B might need to send/receive messages from ALL processes of type A (e.g. open the Editor outside of Excel, then it'll need to broadcast a message asking for open/loaded/suitable Excel instances to choose from, and all A processes will need to reply)

With WCF, All of this means I have to "exploit" the callback features of WCF to implement 2way communication, have to create a rather large number of service contracts, end points etc., and having both one-to-one as well as one-to-many kind of messages gives me a bit of a headache as well

1

Try Apache Geode which is open source Gemfire, as far as I know it's a competitor to Tibco RV. It has in memory storage using "regions" from which it produces event notices to subscribed clients when a region changes (i.e. updated). Clients can subscribe to a particular region or all regions. I think this can answer your use case.

It's been called a hash map on steroids.

  • 1
    Welcome aboard. Thanks for answering, but please note that we don't like link only answers, as links can break with time. It would be helpful if you would add some text explaining why your recommendation answers the question. If you read How to Answer, you will get a better idea. Again, welcome aboard. We look forward to more contributions from you, and to helping you where we can :-) – Mawg Dec 6 '17 at 7:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.