Until now, any screen that presented real-time data had to query the data periodically from the database, then check if there is any difference, and finally display the new information. Take alerts, for example; a screen displaying alerts to the operator has to regularly check in the database if a new alert was created or not. In most cases, a lot of such requests sent to the server will result in a “there has been no new alert” response. This approach can generate a lot of network traffic and put an increased load on the server because often, the same screen is opened multiple times on different machines. Developers and Architects had to find the best balance between “real-time” and optimal “server load” by adjusting auto-refresh rates. Finding answers for questions such as; “Should we use a 30- or 3-second refresh for the screen?” or “How many screens can we keep open – 3 or 30?” typically required the use of a trial and error method.
In a nutshell, Apriso Message Bus is a functionality that allows for real-time communication without having to “pull” the information – instead, it waits for it to arrive. To use the alert example once more; suppose there is a separate functionality that creates the alerts (‘creator’) and a screen that displays them. Now, the creator will not only generate an alert in the database (as usual) but will also send this alert straight to the user’s screen – in real time, no database query required from the user.
The concept works on a subscription basis; a screen subscribes to a message with a specific subject. The publisher operation then creates notifications, including those with the defined subject. If the subject matches, the subscriber will process the received information; if it doesn’t, the subscriber will ignore it.
Apriso Message Bus can be divided into three brokers:
As we can see, the capabilities of the Apriso Message Bus go beyond just internal communication and allow Apriso to talk to external systems using Kafka and MQTT brokers. It remains to be seen if many companies will be able to use this concept, as other external systems will need to support the Message Bus as well. Even so, this is a definite step forward and a representation of Apriso shaking hands with other systems using the same brokers.
During internal testing, the Message Bus functionality worked as designed, and we feel there is a good number of Apriso clients and projects that could benefit from this feature. We are yet to do some real-life testing and are in the process of identifying clients that can help us do that. Let us know if you are interested in taking the Bus for a test drive together with us.