-
Notifications
You must be signed in to change notification settings - Fork 898
Design Overview
Richard Warburton edited this page Mar 17, 2014
·
12 revisions
So how does Aeron implement its Protocol? This diagram shows a the communication for a channel with a single producer and a single consumer. Channels support multicast through multiple consumers.
![Bicycle Diagram](https://github.com/real-logic/Aeron/wiki/img/Aeron Design Diagram.png)
- Aeron uses an underlying unreliable media protocol, which could be anything, eg: UDP or Infiniband.
- Aeron has a Media Driver which implements support for these protocols. It can operate within the same process as the client code or outside. Media drivers can be implemented using Java, C or even FPGAs and sit within either user or kernel space.
- Communication between the Client API/Stack and the Media Driver is implemented as a messaging protocol on a series of ring buffers. This includes a control channel for administrative/internal communication. These use memory mapped file based shared memory.
- The Client API/Stack sits in process. After configuration, the client stack is abstract of the Media Driver. This presents an API to the client code to send or receive messages.