SwiftMQ is a standalone enterprise messaging system and completely implements the publish/subscribe as well as the point-to-point message model of the JMS 1.1 specification, AMQP specification 1.0 and 0.9.1, and MQTT specification 3.1 and 3.1.1.
The SwiftMQ design resembles to a
hub-and-spoke formulation with
central message routers as
hubs and clients as
SwiftMQ is based on a microkernel architecture. The main controller of this kernel is called Swiftlet Manager. Components of SwiftMQ are called Swiftlets.
The Swiftlet Manager knows a group of Swiftlets which are building the kernel. The Kernel Swiftlets are building the base functionality of a SwiftMQ router.
Extension Swiftlets, also contained in the distribution, are providing optional functionality for hot plug-in into a router. They can be hot deployed without stopping a router.
Federated Router Network
SwiftMQ is designed entirely as a federated router network, whereby the router network represents a single router to the JMS client.
Every SwiftMQ router possesses a build-in routing engine to administer any incoming or outgoing routing connection of various configuration.
Routes are exchanged dynamically; no complicated configurations are necessary. As soon as a router establishes a connection to another router, all routers are available, the ones which are connected directly as well as all the routers reachable by this router. No direct peering is necessary between the participating routers.
The routing engine routes the messages destination-based, by finding the shortest way.
The exchange of messages between routers is made with XA transactions (2-phase-commit) and automatic revovery through the SwiftMQ transaction manager. Due to configurable XA transaction and window sizes, SwiftMQ is able to generate an XA troughput of multiple thousands of message per second on routing connections.
In the case of a router failure and consequently a dropped route, the next best route is chosen. If there is no existing route to a destination, the messages stay at the respective router until a route is activated again (store-and-forward).
Because of these mechanisms, SwiftMQ guarantees a high-grade fail-safety as well as a once-and-only-once message delivery beyond the router networks.
Integrated Microservice Platform SwiftMQ Streams
SwiftMQ integrates a highly scalable microservice platform that works on message streams, runs inside a SwiftMQ Router and can be easily integrated into existing infrastructures and data feeds.
Streams can intercept any message flow sent by applications over queues and topics. No need to change application code or messages.
Streams communicate via Messages over queues and/or topics. They can be deployed on a single Router or on many different nodes of a Router Network. SwiftMQ's integrated Federated Router Network provides transparent Message routing so that Streams on one node can communicate with Streams on other nodes transparently.
The data can be analyzed by using the realtime streaming analytics capabilities of the Streaming Interface which are on par with popular realtime streaming analytics libraries. It provides sliding, tumbling and session windows, event time processing and late arrival handling, to name a few features.