Hybrid Event Bus for CloudStack (for CloudStack users who use Kafka or RMQ)
Hello, users, devs.
Today we would like to share new event bus plug-in (hybrid) which combines
inMemory (default) and (Kafka or RabbitMQ) event buses, so inMemory is used
for intra-CloudStack purposes and RMQ or Kafka are used for external.
We use Kafka Event Bus in our deployment and after the development of a new
plug-in (which we publish soon), we discovered that this bus has lack of
functionality. Internal event receivers are not able to subscribe to events
when that bus is used. Actually, it's quite a nasty thing because of
cutting certain CloudStack functionality and It's really impossible who
would like to subscribe to events even inside the CloudStack core, e.g. to
implement delayed processing. So, using standard Kafka Event Bus these
functions stop working and the regression discovery will not be handy. I
know that RabbitMQ implementation also has certain subscription problems.
To overcome it, we implemented a "hybrid" even bus, which uses inMemory for
internals and any other for external communications.
You can find that bus on GitHub:
License: Apache 2
If the developers and community wish to merge it into the main tree, please
feel free, we grant it. We also can merge ourselves if project leaders find
the question worth it.
With best regards, Ivan Kudryavtsev
WWW: http://bitworks.software/ <http://bw-sw.com/>