FluxMQ
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
| 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 & 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 -d2. 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.yamlDefaults (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.