Chronicle FIX
What is Chronicle FIX?
Chronicle FIX is a fully featured FIX engine which can handle all current versions of FIX.
What distinguishes it from the competition is pure speed!
Built on our Chronicle libraries, and with the Chronicle philosophy, it employs amongst others, the principles of:
- Zero copy. Eliminates unnecessary garbage collection and increases speed.
- Runtime code generation. Reduces code size for efficient CPU cache usage and increases speed.
- Smart ordering. Optimises parsing and … increases speed!
All these combine to allow Chronicle FIX to achieve excellent performance results.
The graph displayed below shows the results of parsing and logging NewOrderSingle messages:
Note: When evaluating FIX publishers, we recommend that you measure them in a real running system, rather than going by an idealised view of the software from a micro-benchmark.
Is it all about speed?
We believe that Chronicle FIX is just about as fast as you can get in Java.
Even if you don’t need the raw speed of Chronicle FIX. we think that you will really see the benefits of our unified FIX model, especially if you have to communicate with a number of dialects of FIX.
Not at all.
It is actually a really easy process to define a model file. We can even automate this with our model generator to create an optimised model from your FIX messages. After that, it’s one click to have your clean, uncluttered runtime generated for you!
and there’s more …
Chronicle Queue (a super-optimised low-latency core application from the Chronicle Enterprise suite) is included which logs every FIX message.
Replay. You can easily replay all your historical FIX messages from a Chronicle queue into Chronicle FIX to give the deterministic replay. In other words, you can feed your test systems with actual historical data; so no more made-up, or generated data, that can’t reproduce production issues. You can use this technique to test experimental strategies.
Why choose Chronicle FIX?
You need a really low latency FIX engine.
You want a really easy to use FIX engine.
What will you get from us
Chronicle FIX software.
Access to our enterprise GitHub repository where you can read, fork, and create, pull-requests on our code. It works exactly like the open source. You can be as involved as you like.
How it Works
The parser has been optimised to accept fields in an expected order. Our default implementation has the order the fields as they appear in the fixprotocol.org documentation. However, the fields can be in any order allowed by FIX, but this may be a little slower.
For generating, you do the reverse. You call an interface which writes the FIX message as you add the fields. Ideally you call the fields in the expected order; this speeds up parsing.
Chronicle FIX offers:
- A low latency, recyclable, configurable FIX implementation for inbound FIX message parsing, and outbound FIX message transmission.
- Full FIX compatibility with FIX versions 4.0, 4.1, 4.2, 4.3, 4.4, and 5.0.
- Pre-allocates the memory for FixMessage objects. This is intended to reuse objects thus avoiding dynamic memory allocation.
- FIX parser, around 1 microsecond, 99.9% of the time for medium sized messages.
- FIX message generator, around 1 microsecond, 99.9% of the time for medium sized messages.
- Optional persistence of messages and latency checkpoints in, and out.
- Optimise latency for FIX in-order messages with fallback for out-of-order messages.
- Scalable to tens of connections per server, with minimal latency impact.
- Session handling; login, logout, and heartbeat.
- Integration with existing data structures in a zero-copy manner.
- High performance test client to drive the system to its limits.
- Tools for minimising garbage collection and enabling zero-copy.
- Optimise networking to work efficiently with Solarflare network cards.