Skip to main content
Skip table of contents

13.0.0

In this major release, we take a significant step forward by fully basing SwiftMQ on Virtual Threads, as part of JDK 21. This fundamental change not only enhances efficiency and scalability but also sets a new standard in messaging technology.

We've fully transitioned to GraalVM, now included with every SwiftMQ distribution. This eliminates the need for users to install and maintain separate JDK versions.

We have rigorously battle-tested SwiftMQ 13, successfully managing 10,000 connections with 40,000 virtual threads on a single router. This extensive testing, conducted in both controlled environments and at customer sites, assures robust performance and reliability under high-load conditions.

New Features

  • We've undertaken a major refactoring of our code to align with the JDK 21 language standards.

  • As part of our alignment with JDK 21, we've replaced all traditional synchronized methods with Reentrant[R/W]Locks. This change, along with leveraging built-in concurrency features in collections and atomics, enhances our system's efficiency and readiness for Virtual Threads.

  • We've updated our internal threading model, transitioning from thread pools to event loops, and are now employing consistently running Virtual Threads. This change reduces thread context switching to zero, enhancing efficiency across the board. The exception is SwiftMQ Streams, where Virtual Threads are not yet supported by the GraalVM JIT compiler.

  • This update brings notable enhancements in performance and scalability, achieved through network and store optimizations, as well as the implementation of Virtual Threads.

  • The SwiftMQ Client has been updated to be free of synchronized methods, now fully compatible with Virtual Threads.

Changes

  • SwiftMQ has been completely transitioned to be based on GraalVM (JDK 21), and as a result, it is no longer compatible with other JDK/JRE versions.

  • Each SwiftMQ distribution now includes GraalVM CE 23.1.2, eliminating the need for a separate JDK/JRE installation. Simply download, unpack, and start the router script for immediate use.

  • The Swiftlet API has been updated to reflect the new Threadpool Swiftlet implementation, which now provides event loops in place of traditional thread pools.

  • We have retired SMQP protocol versions older than v750 (introduced in release 7.5.0). As a result, JMS clients using versions prior to v750 will no longer be compatible.

  • The management protocol version v400, which was first introduced in release 4.0.0, has been retired in this update.

Compatibility

This release maintains compatibility with configurations from previous releases down to version 10.x. The configuration file (routerconfig.xml) will be automatically converted at startup using internal preconfig files. Additionally, store compatibility is preserved for versions as far back as 10.x. Compatibility is also maintained for JMS/AMQP/MQTT with prior releases down to 7.5.0, and for HA & Routing protocols with previous versions.

Further Information

In lieu of updating the existing SwiftMQ documentation, a new document has been created to cover all the differences from previous versions. For comprehensive information about these changes and how they impact your use of SwiftMQ, please refer to this new document. It serves as a valuable resource for understanding the specifics of the latest version and how it differs from earlier releases.

Please find it here:

SwiftMQ 13 Differences

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.