Platform Extension

Enterprise Service Bus

Message queue integration with RabbitMQ, ActiveMQ, and Amazon SQS. Topics, queues, pub/sub, and dead letter handling.

Free

Overview

The Enterprise Service Bus qBit adds message queue integration to qqq applications. Build event-driven architectures with RabbitMQ, ActiveMQ, or Amazon SQS without writing queue management code.

Features

  • Message Queue Integration - Native support for RabbitMQ, ActiveMQ, and Amazon SQS
  • Topics & Pub/Sub - Publish events to topics and subscribe multiple consumers
  • Dead Letter Queues - Automatic routing of failed messages with retry policies
  • Message Serialization - JSON, Avro, and Protobuf with schema registry support
  • Async Process Triggers - Trigger qqq processes from queue messages
  • Event Sourcing - Publish domain events to message buses
  • Content-Based Routing - Route messages based on payload content
  • Guaranteed Delivery - At-least-once and exactly-once delivery semantics
  • Queue Monitoring - Message counts, consumer lag, and throughput metrics

Use Cases

  • Decoupling request handling from processing
  • Building event-driven microservice architectures
  • Async processing of long-running operations
  • Fan-out notifications to multiple consumers
  • Integration with external systems via message queues

Installation

bash
qqq install qbit-esb --license YOUR_LICENSE_KEY

Configuration

Configure RabbitMQ as a message backend:

java
new MessageBusMetaData()
   .withName("orderEvents")
   .withType(MessageBusType.RABBITMQ)
   .withHost("localhost")
   .withExchange("orders")
   .withDeadLetterExchange("orders.dlx");

Publish events from processes:

java
new QProcessMetaData()
   .withName("createOrder")
   .withPublishEvent(new EventConfig()
      .withBus("orderEvents")
      .withTopic("order.created"));

Subscribe to queue messages:

java
new QueueSubscriptionMetaData()
   .withQueue("order-notifications")
   .withProcess("sendOrderConfirmation")
   .withRetryPolicy(RetryPolicy.exponentialBackoff(3));

Requirements

  • qqq Framework 1.0+
  • Java 21+
  • RabbitMQ 3.8+, ActiveMQ 5.16+, or Amazon SQS
  • QRunIO account with valid license key

Ready to build faster?