The Aeron Files (the truth is out there)¶
June 2025 - the Aeron Cluster section is finally available! I still have a few TODOs to resolve, which I'll get to in due course. Enjoy.
Aeron is a software framework that provides "low latency messaging and high availability clustering for electronic trading".
This website provides an unofficial description of how Aeron works. The official documentation is at Aeron.io and the Aeron GitHub Wiki. I've introduced concepts incrementally, so the site should make sense when read in page order, without having to jump around. Any links to later in the site are for info and don't need to be read to understand the current page.
This description of Aeron is based on the state it holds internally, a lot of which is held in shared memory files.
Fred Brooks, The Mythical Man-Month
Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.
Also, when you're investigating a production issue after a cluster restart, a copy of the files might be all you have. This is exactly the situation I've been in, investigating the cause of some data corruption (not caused by Aeron). I had a directory full of files, but didn't know where to start. The truth was out there, but it took a while to find, because I didn't have the understanding that I'm sharing with you now.
This website started out as notes for a brown bag session, but they grew out of control. I've tried to focus on how Aeron works, rather than how to use it, so it's intended to complement, rather than compete with the official docs. I've worked with Aeron for a number of years and worked with its authors. This is just my way of giving something back, and hopefully encourage more people to use Aeron. It's also helped me gain a deeper understanding of Aeron's inner workings. I hope you find it useful.
See the Change Log for the version of Aeron that each section relates to.