Skip to content

Overview

Richard Warburton edited this page Nov 23, 2018 · 5 revisions

This page explains the key concepts and components of the FIX Gateway and how they interact with each other.

The Big Picture

Component Diagram

The FIX Gateway has two key components - Engine and Library. These can be run in separate processes or the same process. The Engine handles TCP Connections, Frames FIX Messages and logs them into an archive. When Library instances become unavailable the Engine manages sessions that it has accepted.

The Library sits within your Application's process and manages FIX sessions. Each Library instance is single threaded, so if you want to use multiple threads you either need to manage the handoff between those threads yourself or to run one library instance per thread.

Aeron

Communications between the Engine and Library go over Aeron. Aeron has a separation of concerns between the "Media Driver" which replicates its log file over the network and the "Client" which you have in process in your application. In the case of the FIX Gateway you don't need to worry about the client because both the Engine instance and the Library instances have a client in them.

A media driver also needs to run in order to run the Engine or Library. Normally you should run a single media driver per machine. So if you've got multiple processes on the same machine they can share a single media driver, but if you want to have an Engine on one machine and a Library on another then you need two media drivers - one for each machine.

If the Engine and Library processes are sitting on the same machine then you can use Aeron's IPC transport to communicate between them, if you're going over different machines then you can use UDP. This is configured through the aeronChannel configuration option.

Clone this wiki locally