Hi all,
since some weeks I’m working on Hazelcast-AxonFramework (https://github.com/lburgazzoli/lb-axon) and as today my focus is on an implementation of the EventBusTerminal interface based on Hazelcast’s Topics (http://www.hazelcast.com/docs/2.6/manual/single_html/#Topic).
The code is far to production quality and it lacks documentation, test cases and so on but I would love to have some feedback/criticism from you guys.
The relevant packages are:
-
org.axonframework.hazelcast
-
org.axonframework.hazelcast.eventhandling
-
org.axonframework.hazelcast.eventhandling.impl
-
org.axonframework.hazelcast.samples
The class implementing the EventBusTerminal is HazelcastEventBusTerminal and it is not suppose to directly broadcast events locally but it relies on Hazelcast publish/subscribe “engine”.
The implementation needs two additional object to properly publish/subscribe events: -
IHazelcastTopicSubscriber.java
Why? Because you can split the workload across different Hazelcast-Axon nodes without having all your nodes processing unwanted events.
IHazelcastTopicPublisher has some default implementations that let you to choose the topic to send an event to based on the class name, the package name or the default one:
-
ClassNamePublisher.java
IHazelcastTopicSubscriber has a couple of default implementations to subscribe to a predefined topics or to the topics that match a pattern: