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.

Software Architecture

The SwiftMQ design resembles a hub-and-spoke formulation with central message routers as hubs and clients as spokes.

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 that 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 a 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 configurations.

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 recovery through the SwiftMQ transaction manager. Due to configurable XA transaction and window sizes, SwiftMQ is able to generate an XA throughput of multiple thousands of messages 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 the 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 real-time streaming analytics capabilities of the Streaming Interface which are on par with popular real-time streaming analytics libraries. It provides sliding, tumbling, and session windows, event time processing, and late arrival handling, to name a few features.