FluxMQ

open-source | high-throughput | low-latency | scalable
persistent storage | replication | MQTT v3/v5 | AMQP
security | extensibility

A high-performance, open source, multi-protocol message broker written in Go for scalable IoT and event-driven architectures. Single binary. No external dependencies.

Features

Multi-Protocol Support

MQTT 3.1.1 and 5.0 over TCP/WebSocket, plus HTTP-MQTT and CoAP bridges, sharing one broker core.

Durable Queues

Persistent queues with consumer groups, ack/nack/reject semantics, retention controls, and replication.

Clustering and HA

Embedded etcd coordination, inter-broker gRPC with mTLS, and session ownership transfer for resilience.

Performance Optimized

Zero-copy parsing, pooling, trie topic matching, and streamlined routing for high-throughput workloads.

Security

TLS/mTLS client connections, DTLS options for CoAP, origin validation, and per-IP/per-client rate limits.

Open-Source and Extensible

Apache 2.0 licensed with layered architecture and pluggable backends for storage and protocol integration.

Performance

Metric Value
Concurrent Connections 500K+ per node
Message Throughput 300K-500K msg/s per node
Latency (local) <10ms
Latency (cross-node) ~5ms
Session Takeover <100ms

Cluster Scaling

  • 3-node cluster: 1-2M msg/s
  • 5-node cluster: 2-4M msg/s
  • Scaling: linear with topic sharding

Use Cases

Event-Driven Systems

  • Decouple microservices with event streams
  • Reliable command and event pipelines (CQRS)
  • Background jobs and asynchronous workflows
  • Real-time processing pipelines

IoT and Real-Time Apps

  • Telemetry ingestion over MQTT
  • Edge deployments with intermittent connectivity
  • Live dashboards over WebSocket
  • Bridge constrained device protocols

High-Throughput Pipelines

  • Stream millions of events per second
  • Buffer spikes with durable queues
  • Decouple ingestion from processing
  • Power analytics and observability streams

Architecture

Setup and Configuration
v
TCP/WS/HTTP/CoAP Servers
AMQP 1.0 Server
AMQP 0.9.1 Server
v
MQTT Broker
AMQP 1.0 Broker
AMQP 0.9.1 Broker
v
Queue Manager (Bindings + Delivery)
v
Log Storage + Topic Index

Key Components

  • Transport Layer: MQTT, AMQP, CoAP, HTTP, WebSocket servers
  • Protocol Brokers: protocol-specific handlers with shared queue integration
  • Queue Manager: durable queue bindings and delivery orchestration
  • Storage: persistence and indexing for reliable replay and routing

Quick Start

1. Run with Docker

git clone https://github.com/absmach/fluxmq.git
cd fluxmq
docker compose -f docker/compose.yaml up -d

2. Test with MQTT

# Subscribe to all topics
mosquitto_sub -p 1883 -t "test/#" -v

# Publish a message
mosquitto_pub -p 1883 -t "test/hello" -m "Hello FluxMQ"

3. Or Build Locally

git clone https://github.com/absmach/fluxmq.git
cd fluxmq
make build
./build/fluxmq --config examples/no-cluster.yaml

Defaults: MQTT TCP :1883, AMQP 0.9.1 :5682, Data /tmp/fluxmq/data

Next Steps:

Subscribe to Newsletter

Stay updated with the latest FluxMQ news, updates, and announcements.

By subscribing, you agree to our Privacy Policy and Terms of Service.