There are two clients for an Event Broker Service that must be consistent. The event may be generated by service A’s communication with service B, or from client A interacting with the observable, more typically Service 1. Using this approach to collaborate with microservices promotes a separation of concerns. As the applications communicate between each other, knowing that a particular action performed on the microservice will not affect the other microservice is much more reliable than knowing that service A will interact with some other service B. Developing applications via an Event Broker Service allows a host of avoidable pitfalls to be avoided. An Event Broker Service can be built as a module of a framework or a separate software product. There are a few important features about the source that facilitate a robust and extensible platform:
Extending an Event Broker Service provides an SOAP API as well as a chat interface that a developer can use to send or receive messages between customers. Customers can have custom implementations of the JavaBeans via a set of graduated packages.
Application to receive a service’s messages provides a way to automatically report back to customers. Through the concept of a group or test object, a developer may easily execute a flow of requests. These flows are simple repeating tasks; e.g., instantiation of an event to be notified by a service, another instance to test response actions that may be carried out by a Service, confirmation of a customer-supplied object via a service. For an Event Broker Service this only has to occur on the object that the Customer factories refer to, ServiceA, ServiceB, and ClientA respectively, with no direct communication going between the customer journeys and the Event Brokers.
Code examples by Roland Kamsika