Starlight for RabbitMQ

Starlight for RabbitMQ acts as a proxy between your RabbitMQ application and Apache Pulsar™ cluster. It implements the AMQP 0.9.1 protocol used by RabbitMQ clients and translates AMQP frames and concepts to Pulsar ones. Starlight for RabbitMQ can be run as a standalone Java application, a Pulsar protocol handler, or a Pulsar Proxy extension.

How Starlight for RabbitMQ works

AMQP 0.9.1, the protocol RabbitMQ uses, employs the concepts of Exchanges, Queues, and Bindings to provide basic routing capabilities inside the message broker. These concepts are mapped to Pulsar topics and features.

Starlight for RabbitMQ acts as a proxy and uses the Pulsar binary protocol to communicate with the brokers. This method allows RabbitMQ applications to leverage Pulsar features like load balancing of the topics on the brokers, batching of messages, partitioning of topics, and load balancing of the data on the consumers.

For more information, see Starlight for RabbitMQ protocol handler.

Deployment options

There are several ways to run Starlight for RabbitMQ:

Pulsar pluggable protocol handler

Deploying Starlight for RabbitMQ in the broker as a protocol handler means that you don’t need to deploy another runtime. However, the resources used by Starlight for RabbitMQ to handle traffic can have an impact on the load balancing algorithms used by Pulsar.

By adding the Starlight for RabbitMQ protocol handler to your Pulsar cluster, you can migrate your existing RabbitMQ applications and services to Pulsar without modifying the code.

Starlight for RabbitMQ Architecture

Pulsar Proxy extension

Deploying Starlight for RabbitMQ in the Pulsar Proxy as a proxy extension means that you don’t need to deploy another runtime if you already use the Pulsar Proxy. Additionally, there is no significant impact on the Pulsar Proxy’s performance. Proxy extensions require Pulsar version 2.9 or later.

Standalone Java application

Running Starlight for RabbitMQ as a standalone Java application has the advantage of not impacting the resources used by the Pulsar cluster but on the other hand you need to deploy and manage the lifecycle of an additional runtime.

Limitations

Support for topic exchanges was added in Starlight for RabbitMQ version 2.10.1.

Starlight for RabbitMQ version 2.10.1 doesn’t support the following features:

  • Header exchanges

  • Exclusive consumers

  • Non durable exchanges and queues

  • Transient messages (all messages are persisted)

  • Authorization support

Because RabbitMQ and Pulsar work differently, Starlight for RabbitMQ was designed to realize the most benefit from Pulsar’s scalability. This means that canceling an AMQP consumer re-queues the messages that were received through it because it also closes the associated Pulsar consumers.

Was this helpful?

Give Feedback

How can we improve the documentation?

© Copyright IBM Corporation 2026 | Privacy policy | Terms of use Manage Privacy Choices

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: Contact IBM