JoramMQ complète le runtime JORAM avec trois plugins, activables en différentes combinaisons pour optimiser le runtime suivant l’usage attendu.
TxLog
TxLog est une implantation du module transactionnel de JoramMQ, qui assure le commit des transactions de manière atomique, isolée, et durable. TxLog est optimisé pour l’usage messaging, à savoir pour les opérations de sauvegarde et destruction de messages persistants. Les logs transactionnels sont gérés efficacement en utilisant notamment les mécanismes d’écriture séquentielle, fsync asynchrone avec callbacks, compactage asynchrone, et garbage des vieux messages conservés dans un data store géré par LevelDB.
BatchEngine
BatchEngine est une implantation du moteur d’exécution de JoramMQ qui organise l’exécution des fonctions élémentaire du MOM, e.g. routage et distribution des messages, gestion des souscriptions. BatchEngine améliore considérablement les performances du moteur de base de JORAM en réalisant le commit des transactions en mode batch. Le gain en performance est maximal quand BatchEngine est configuré avec TxLog.
BatchNetwork
BatchNetwork est une implantation du module de communication de JoramMQ, qui assure la communication fiable et sécurisée entre les différents serveurs d’une configuration JoramMQ distribuée. BatchNetwork transmet les messages en mode batch sans augmenter la latence. Au lieu d’attendre un nombre prédéfini de messages ou un intervalle de temps prédéterminé, BatchNetwork collecte tous les messages en attente et les envoie sur le réseau en un seul packet.
BatchNetwork assure une communication bidirectionnelle au-dessus d’une connexion unique.