Author Message
RenatoSimoes
Joined: Jan 15, 2014
Messages: 8
Offline
Hi there,

I have some questions around communication from snapin to snapin, and would appreciate your assistance....

1) Communication Bus

my understanding this is available in 3.1 and only applies to communication of snapin to snapin within the same Breeze servers, and not to snapins located in different Breeze servers of the same cluster, would that be correct?


2) Reliable Eventing Framework

my undestanding this will be available in 3.2.

Would it substitute the Communication Bus, or it will serve a different purpose?

Would the Reliable Eventing Framework be able to send events to snapins in other Breeze nodes (within the same cluster)?

So I can better understand it, could you please help me with the following scenarion...


Assume
=======
- There are 2 breeze servers in a cluster
- In each Breeze server there are 2 snapins deployed
- The Requestor Snapin
- The Consumer Snapin
- The Consumer Snapin (both of them, one from each Breeze server) are listening for events of type “XYZ”

Use Case
============

- Using the Breeze API (Reliable Eventing Framework), the Requestor Snapin sends an event of Type XYZ


Quesiton:
===========
- Do both Consumer snapins (one from each Breeze server) get the XYZ event, or the Breeze cluster takes care of redirecting the event to a single instance of the Consumer in exact just one of the Breeze servers?


Cheers,
Renato.
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi Renato,

Yes, the Reliable Eventing Framework is coming in 3.2, but with a big caveat. This feature has been targeted specifically to Oceana (and more specifically, Oceanalytics) for this release. We are looking at opening it up more broadly in the following release.

To give you a preview of how it works, however, it uses the concept of "virtual topics". A virtual topic would be created by the consumer snap-in(s). Each instance of the snap-in would then have a queue that backs the virtual topic. Your publisher would publish to the virtual topic, and the snap-ins would pull off of their individual queues on the back end. This accomplishes load distribution across multiple nodes.

Now that I've teased you with the art of the possible, let's talk about what you can do with current releases of Breeze. The first question is, what stimulus is occurring to cause your publisher to publish the event. Prior to REF, the assumption has been that all incoming stimuli (primarily HTTP and SIP) are balanced before arriving on a node in the cluster, and since nodes in that cluster are homogeneous, it is OK to publish (via the Eventing Framework or Collaboration Bus) only to the local instance of the consuming snap-in. Is this applicable to your case?
RenatoSimoes
Joined: Jan 15, 2014
Messages: 8
Offline
Hi Joel,

thanks for the details.


For the future 3.3....

From your comment: "Your publisher would publish to the virtual topic, and the snap-ins would pull off of their individual queues on the back end. This accomplishes load distribution across multiple nodes"

Question: Just to make sure I got it: would all the individual snapin instances get the event (even if it is the same snapin, just deployed in the different cluster nodes)?


Cheers,
Renato.
PatrickPeng
Joined: Feb 12, 2007
Messages: 9
Offline
Yes. The Reliable Eventing Framework (REF) supports both broadcast and load balancing event distributions. All your snap-ins located on different Breeze nodes or clusters are able to subscribe and receive the same event.

thanks,
Patrick
RenatoSimoes
Joined: Jan 15, 2014
Messages: 8
Offline
thank you!
Go to:   
Mobile view