JoramMQ enriches the JORAM runtime with four plugins, that you may activate in different combinations to get a runtime optimized for your usage.
TxLog is used by JoramMQ to commit transactions in an atomic, isolated and durable way. TxLog is optimized for messaging purpose, allowing to quickly save and delete persistent messages. Transaction logs are handled efficiently with mechanisms such as sequential writing, asynchronous fsync with callbacks, asynchronous compacting, and garbage of old messages still enqueued in a data store managed with LevelDB.
BatchEngine is responsible for the execution of the core activities of JoramMQ, e.g. queues, subscription matching, message routing. BatchEngine boosts Joram Runtime performance by committing transactions in batches. The performance gains are maximum if BatchEngine works with TxLog.
BatchNetwork enables several JoramMQ servers to communicate with each other through a secure, efficient and reliable protocol that transmits messages in batches without increasing the transmission latency. Instead of waiting for a predefined number of messages to be sent or a predefined time interval to elapse, BatchNetwork gathers all the messages that are ready to be sent at a given time in one batch and pushes the batch to the network.
BatchNetwork can provide a bi-directional communication on top of a single connection.
The MQTT plugin provides the implementation of the MQTT protocol in JoramMQ. It is designed directly on top of the ScalAgent platform, for optimal performances. Il is totally compatible with the JMS API of JORAM.
The detailed functions of this plugin may be found on this page.
An evaluation version of JoramMQ preconfigured for MQTT testing is available on demand.