Aeron: Di Balik Sistem Pesan yang Menggerakkan Setengah Industri HFT

Pembahasan mendalam tentang Aeron - sistem pesan dari Real Logic untuk perdagangan frekuensi tinggi. Transport, Archive, Cluster, Sequencer. Apa yang ada di dalamnya, cara kerjanya, dan di mana hambatannya.

Arsitektur Pesan Aeron Aeron: Media Driver, memori bersama, log triple-buffered — arsitektur yang menetapkan standar untuk pesan latensi rendah.

Ketika membahas sistem pesan untuk perdagangan frekuensi tinggi, satu nama selalu muncul dalam setiap percakapan — Aeron. Dikembangkan oleh Martin Thompson dan tim Real Logic (kemudian Adaptive Financial Consulting), Aeron menjadi standar de facto untuk transmisi data di dunia di mana mikrodetik menentukan segalanya.

Dalam artikel ini, kami menguraikan Aeron menjadi bagian-bagiannya: Transport, Archive, Cluster, dan Sequencer. Kami menjelaskan cara kerjanya di dalam, di mana kekuatannya — dan di mana masalah mulai muncul.


TL;DR

  • Aeron — sistem pesan open-source (Apache 2.0) untuk aplikasi latensi rendah
  • Latensi IPC: ~250 ns round-trip via memori bersama
  • Throughput: 20+ juta pesan per detik
  • Empat produk: Transport (inti), Archive (rekam/putar ulang), Cluster (Raft), Sequencer (urutan total)
  • Bahasa: Java (utama) + klien C (kurang lengkap)
  • Digunakan oleh: puluhan perusahaan HFT, pembuat pasar, dan bursa efek

Bagian 1: Aeron Transport — Inti Sistem

Arsitektur: Media Driver

Aeron Media Driver

Komponen utamanya adalah Media Driver — sebuah proses terpisah (atau pustaka tertanam) yang mengelola semua transmisi data. Aplikasi berkomunikasi dengannya melalui memori bersama (file mmap di /dev/shm).

Struktur data utama:

  • ManyToOneRingBuffer (MPSC) — perintah dari klien ke Media Driver
  • BroadcastTransmitter/Receiver — respons dari Media Driver ke klien
  • Log Buffers — log append-only triple-buffered untuk data
  • Position Counters — penghitung atomik untuk koordinasi posisi

Performa

MetrikNilai
IPC (memori bersama) RTT~250 ns
UDP unicast RTT (bare metal)~10 us
UDP unicast RTT (cloud, AWS)<100 us
Throughput>20M msg/detik
Aeron Premium (kernel bypass) P9939 us

Bagian 2: Aeron Archive — Rekam dan Putar Ulang

Archive merekam aliran pesan ke disk untuk diputar ulang dari posisi mana pun. Kasus penggunaan: audit regulasi, pemulihan dari crash, backtesting, debugging.


Bagian 3: Aeron Cluster — Konsensus Raft

Konsensus Raft

Mesin state yang direplikasi dengan toleransi kesalahan untuk sistem di mana kehilangan pesan tidak dapat diterima (mesin pencocokan, manajemen order). Pemilihan pemimpin, replikasi log, pembacaan yang sangat konsisten.


Bagian 4: Aeron Sequencer — Pengurutan Total

Produk baru (2025) yang dioptimalkan untuk pasar modal. Menyediakan urutan global tunggal untuk semua peristiwa — kritis untuk mesin pencocokan dan pembuatan pasar multi-venue. Dibangun di atas Cluster. Produk komersial (closed-source).


Kelemahan

Overhead JVM dan Jeda GC

  1. Ketergantungan JVM — safepoint, jeda GC, pemanasan JIT
  2. Overhead Media Driver — lompatan tambahan melalui memori bersama
  3. Tidak ada kernel bypass bawaan — hanya UDP (io_uring, DPDK tidak didukung di open-source)
  4. SBE terpisah — skema XML, generator kode Java, langkah build terpisah
  5. Tidak ada zero-copy networking — data disalin dari soket ke log buffer

Alternatif

ProyekBahasaKelebihanKekurangan
AeronJava/CMatang, teruji, ekosistem lengkapOverhead JVM, tidak ada kernel bypass (open-source)
ZigBoltZig20 ns SPSC, codec zero-copy, tanpa GCProyek muda (v0.2.1)
Chronicle QueueJavaPersisten, miliaran msg/hariGC JVM, berat
ZeroMQCAPI sederhana, banyak transportTidak ada lapisan keandalan, tidak ada clustering

Kami di Marketmaker.cc mengembangkan ZigBolt — alternatif Aeron open-source dalam Zig. Tanpa JVM, tanpa GC, codec comptime, latensi SPSC 20 ns. Baca selengkapnya di artikel ZigBolt kami.


Tautan:


Kutipan

@article{soloviov2026aeron,
  author = {Soloviov, Eugen},
  title = {Aeron: Inside the Messaging System That Powers Half of the HFT Industry},
  year = {2026},
  url = {https://marketmaker.cc/id/blog/post/aeron-messaging-overview},
  description = {Pembahasan mendalam arsitektur: Aeron Transport, Archive, Cluster, Sequencer.}
}