Skip to content

Aeron Messaging

Welcome to Aeron documentation covering high-performance messaging protocols and low-latency communication patterns.

Overview

Aeron is a high-performance messaging library designed for low-latency, high-throughput applications. It's particularly well-suited for financial systems, real-time analytics, and distributed systems requiring reliable message delivery.

Core Topics

Fundamentals

  • Why Aeron? - Advantages and use cases for Aeron messaging
  • MDC vs Unicast - Understanding Multi-Destination-Cast vs traditional unicast patterns

Integration Examples

Key Features

Performance Characteristics

  • Low Latency: Optimized for microsecond-level messaging
  • High Throughput: Handles millions of messages per second
  • Zero Copy: Efficient memory usage patterns
  • Mechanical Sympathy: Hardware-aware design

Communication Patterns

  • Unicast: Point-to-point reliable messaging
  • Multi-Destination-Cast (MDC): Efficient one-to-many communication
  • Publication/Subscription: Event-driven messaging patterns

Getting Started

New to Aeron?

Start with Why Aeron? to understand the advantages, then explore MDC vs Unicast to choose the right communication pattern.

Learning Path

  1. Understand the Advantages - Learn why choose Aeron over other messaging solutions
  2. Communication Patterns - Study MDC vs Unicast trade-offs
  3. Real-world Examples - Explore Artio integration implementations
  4. Performance Tuning - Apply optimization techniques for your use case

Use Cases

Ideal Applications

  • Financial Trading Systems - Low-latency order processing and market data
  • Real-time Analytics - High-frequency data processing pipelines
  • Distributed Systems - Reliable inter-service communication
  • Gaming Infrastructure - Real-time multiplayer game state synchronization

When to Choose Aeron

  • Sub-millisecond latency requirements
  • High message throughput needs (1M+ messages/sec)
  • Reliable delivery without complex middleware
  • Direct control over messaging infrastructure

Architecture Patterns

Publisher-Subscriber Model

flowchart LR
    Pub["Publisher"] --> Transport["Aeron Transport"]
    Transport --> S1["Subscriber 1"]
    Transport --> S2["Subscriber 2"]
    Transport --> S3["Subscriber N"]

See MDC vs Unicast for how this fan-out is actually implemented on the wire.

Request-Response Pattern

sequenceDiagram
    participant Client
    participant Transport as Aeron Transport
    participant Server

    Client->>Transport: request
    Transport->>Server: request
    Server->>Transport: response
    Transport->>Client: response

Cluster Communication

flowchart LR
    A["Node A"] <--> Cluster["Aeron Cluster<br/>(consensus + replication)"]
    Cluster <--> B["Node B"]
    Cluster <--> C["Node C"]
    Cluster <--> D["Node D"]

Performance Considerations

Aeron's design prioritizes mechanical sympathy - understanding and working with hardware characteristics for optimal performance. This includes CPU cache usage, memory allocation patterns, and network interface optimization.

Production Deployment

Aeron excels in production environments where predictable latency and high throughput are critical. Consider network topology, hardware specifications, and operating system tuning for optimal results.