Multi Service Bus Design FAQ

What communication objects MSB has?

There are 5 object classes for communication only. There are 2 Requesters, 2 Receivers and 1 Responder.

What communication model MSB has?

There is 1-way communication between Requester and Receiver. There is 2-way communication between Requester and Receiver with no response guaranteed by communication model contract. There is 2-way communication between Requester and Responder with response guaranteed by communication model contract.


What types of communication MSB supports?

MSB is the same abstraction of inside process (In-Proc), inside host (In-Host) and inside network (In-Net) communication.


What benefits MSB has for In-Proc communication?

Use of MSB for inside process communication is very important for multi-core code. Each time you are using MSB for In-Proc communication it creating thread for you. Also when you have 12 core CPU and for example 48 such threads inside the process, your operation system balance In-Proc threads very efficient. And you have multi-core solution. Important this is also that In-Proc communication is lock free and thread-safe the same time. Thanks to this MSB for In-Host is very saleable and performing very fast.

What happen with 1 Requester and 2+ Receivers of the same message type?

Your model for message communication will be working in broadcast way.

What happen with 2+ Requesters and 1 Receiver of the same message type?

Your model for message communication will be working fine too.

What Requesters do behind the scenes?

Each Requester using data model to store all messages in memory that have to be taken by Receiver and/or Responder. Important is to understand that Requester has address to connect to and not sending anything.

What is the difference between Receiver and Responder?

The main different is in the contract exposes to client code. Responder have to always respond for messages and Receiver can respond but does not have to.

How to make message for communication?

All you have to do is extends IMessage interface and make sure that your message is ready to serialize into and from array of byte by Protobuf.

What about auto discovery of communication model?

For In-Proc communication is full auto discovery. For In-Host and In-Net communication I do not believe is good idea to have it.

What about transactions in communication model?

It is up to you how you model your communication, you can add your transaction id and use that, you can model collecting of data to the queue between transaction begin and transaction end marked message. It is up to you, I do not want to implement that in MSB.

What programming languages MSB supports?

Now only C# version is implemented. Java and C++ versions are under develop.

Can I join the MSB project?

image If you want please contact with me including your email address and describe what you want to do in this open source project. I am looking for C#, Java and C++ experts. For me it is unique opportunity to make nice clean code and use tool and libraries I want. Already 3 Java and C++ experts join me recently so, there are other eyes in project. We have issue tracking, wiki and fun ;-). In technologies stack in MSB there are Protobuf for serialization to byte array and Apache Thrift for communication. To answer the question in short, of course you can join.

Where there is open source code of MSB?


When you publish 1.0 release?

When we made it :), C# version is ready for use now (April 2015), And Java and C++ versions are under develop.

That is the first FAQ of Multi Service Bus. In case of more questions just leave me comment and I respond to you sooner or later.

p ;).

Leave a Reply

Your email address will not be published. Required fields are marked *