SwiftMQ Documentation

SwiftMQ Documentation

  • Client
  • CE
  • UR
  • HA
  • Javadocs
  • Release Notes

›SwiftMQ CE

SwiftMQ Client

  • Getting Started
  • JNDI Client
  • JMS Client
  • AMQP 1.0 Client
  • Filetransfer Client

SwiftMQ CE

  • Getting Started
  • Installation
  • Upgrade
  • Software Architecture
  • Administration

    • Preconfig
    • CLI Command Line Interface
    • JMX Administration
    • CLI Message Interface
    • routerconfig.xml Watch Dog
    • System Properties

    Swiftlets

    • AMQP Swiftlet
    • Authentication Swiftlet
    • Deploy Swiftlet
    • JMS Swiftlet
    • JNDI Swiftlet
    • Log Swiftlet
    • Management Swiftlet
    • MQTT Swiftlet
    • Network Swiftlet
    • Queue Manager Swiftlet
    • Routing Swiftlet
    • Scheduler Swiftlet
    • Store Swiftlet
    • Streams Swiftlet
    • Threadpool Swiftlet
    • Timer Swiftlet
    • Topic Manager Swiftlet
    • Trace Swiftlet
    • XA Resource Manager Swiftlet

    APIs

    • CLI Admin API

    How To

    • TLS Configuration
    • HTTP Tunneling Configuration
    • Upgrade SwiftMQ Router and Clients

    In Depth

    • Versioning
    • File Store

SwiftMQ UR

  • Getting Started
  • License
  • Installation
  • Upgrade
  • Administration

    • SwiftMQ Explorer

    Swiftlets

    • JDBC Authentication Swiftlet
    • FileCache Swiftlet
    • JMS Application Container Swiftlet
    • JMS XA Swiftlet
    • JDBC Store Swiftlet
    • AMQP Bridge Extension Swiftlet
    • JMS Bridge Extension Swiftlet
    • JavaMail Bridge Extension Swiftlet
    • Replicator Extension Swiftlet

SwiftMQ HA

  • Getting Started
  • License
  • Installation
  • Upgrade
  • HA Introduction
  • HA Deployment
  • Administration
  • JNDI/JMS under HA
  • Routing under HA
  • Advanced Configuration
  • HA Test Suite

Software Architecture

Overview

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 to 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 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.

← UpgradeNext →
  • Overview
  • Software Architecture
  • Federated Router Network
  • Integrated Microservice Platform SwiftMQ Streams
Copyright © 2020 IIT Software GmbH