These are my notes around the journey into Aeron.
UI
<--WebSocket-->Babl
<--Aeron-->ClusteredLogic
- AeronCluster
- BablWS
- gRPC
- EKS cluster with AtyosRunner
- Simple comparison: RealLogic's SBE, Google's Protocol Buffer and Google's JSON
- Protocol Buffer
Each component
is organised in demo levels (demo0, demo1, etc.). Then, the demos from each component are composed together to create higher level demos.
Intention is to be able to decrease the level of the demo to understand the component
better.
As defined on its GitHub, Aeron is an efficient reliable UDP unicast, UDP multicast, and IPC message transport. Reading the content on the official github and its wiki is certainly mandatory. Another great source will be the Aeron Cookbook.
# TODO:
- add the link to all aeron tutorials present somewhere on Aeron GitHub
AeronCluster provides support for fault-tolerant services as replicated state machines based on the Raft consensus algorithm.
Babl is a high-performance, scalable web-socket server designed for use in low-latency applications. It's used here to connect the user (UI) with the server consistent logic (your logic running with the help of the AeronCluster). Go to its website and read the documentation.
Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java. It's used in Aeron, Sbe, Babl.
Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. Go to its website and read the documentation.
The AtyosRunner is here to glue the code all together. You can easily skip its usage if you don't want it. You can see its gitlab for more information.