Introduction
Aeron is a messaging transport designed for low-latency, high-throughput communication. Built by Real Logic, it targets financial trading systems, telemetry pipelines, and any domain where microsecond performance matters more than convenience.
What Aeron Does
- Delivers reliable unicast and multicast messaging over UDP and IPC
- Achieves sub-microsecond latency for inter-process communication on the same host
- Provides a lock-free, garbage-free data path in Java for predictable GC pauses
- Supports clustered replication via Aeron Cluster for fault-tolerant state machines
- Includes an archive module for persistent message replay
Architecture Overview
Aeron separates the Media Driver (a shared-memory transport engine) from client libraries. The driver manages buffers, flow control, and loss recovery in a dedicated process. Clients communicate with it through memory-mapped files, avoiding kernel syscalls on the data path. This design keeps latency deterministic regardless of the number of publishers or subscribers.
Self-Hosting & Configuration
- Build from source with Gradle or pull pre-built JARs from Maven Central
- Launch the Media Driver as a standalone process or embed it in your JVM application
- Tune buffer sizes, SO_RCVBUF, and thread affinity via system properties
- Use Aeron Archive for durable message storage and replay from disk
- Deploy Aeron Cluster for consensus-based replication across nodes
Key Features
- Lock-free, wait-free, and zero-allocation on the fast path in Java
- IPC throughput exceeding tens of millions of messages per second
- Built-in congestion control and loss recovery for UDP transport
- Aeron Cluster provides Raft-based replicated state machines
- C and C++ client libraries for cross-language interop
Comparison with Similar Tools
- ZeroMQ — simpler API with higher-level patterns, but higher latency on the fast path
- nanomsg / nng — lightweight messaging with less focus on ultra-low latency
- gRPC — request-reply over HTTP/2; Aeron is a transport layer, not an RPC framework
- Chronicle Queue — Java-specific persistent queue; Aeron covers network transport and IPC
FAQ
Q: Do I need the Media Driver as a separate process? A: No. You can embed the driver in-process, though a standalone driver is recommended for production isolation.
Q: Is Aeron suitable for web applications? A: Not directly. It targets backend service-to-service and intra-host communication, not browser clients.
Q: What languages are supported? A: Java (primary), C, and C++. Community wrappers exist for .NET and Rust.
Q: What license does Aeron use? A: Apache License 2.0.