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

Full MQTT 3.1.1 and 5.0 over TCP and WebSocket, plus HTTP-MQTT and CoAP bridges. All protocols share the same broker core — messages flow seamlessly across transports.

Durable Queues

Persistent message queues with consumer groups, ack/nack/reject semantics, dead-letter queues, and Kafka-style retention. Raft-based replication with automatic failover.

Clustering & High Availability

Embedded etcd for coordination, gRPC-based inter-broker communication with mTLS, automatic session ownership, and graceful shutdown with session transfer. No external dependencies.

Performance Optimized

Zero-copy packet parsing, object pooling, efficient trie-based topic matching, and direct instrumentation. 300K-500K msg/s per node with sub-10ms latency.

Security

TLS/mTLS for client connections, mTLS for inter-broker gRPC, DTLS/mDTLS for CoAP, WebSocket origin validation, and per-IP/per-client rate limiting.

Open-Source & Extensible

Licensed under Apache 2.0 with a clean layered architecture (Transport → Protocol → Domain). Pluggable storage backends, protocol-agnostic domain logic, and easy extensibility.

PERFORMANCE

METRICVALUE
Concurrent Connections500K+ per node
Message Throughput300K-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 & event pipelines (CQRS)
  • Background jobs & asynchronous workflows
  • Real-time data processing pipelines

IoT & Real-Time

  • IoT device telemetry ingestion (MQTT)
  • Edge deployments with intermittent connectivity
  • Live dashboards & browser updates (WebSocket)
  • Constrained device messaging via protocol bridges

High-Throughput Pipelines

  • Stream millions of events per second
  • Buffer traffic bursts with durable queues
  • Decouple ingestion from downstream processing
  • Power analytics & observability data streams

ARCHITECTURE

KEY COMPONENTS

  • Transport Layer: Multi-protocol servers (MQTT, AMQP 1.0, AMQP 0.9.1, CoAP, HTTP, WebSocket)
  • Protocol Brokers: FSM-based protocol handlers with zero-copy parsing
  • Queue Manager: Durable queue bindings with FIFO, priority, and topic-based delivery
  • Storage: For message persistence and topic indexing

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. You can unsubscribe at any time.