Show Table of Contents

Introduction: Architecture Overview

Chronicle FIX is a high-performance Java library for implementing the FIX (Financial Information eXchange) protocol. It delivers high throughput, low latency, and high availability, while remaining extensible and customisable.

Chronicle FIX leverages the high-performance Chronicle Network layer to manage seamless connection establishment and session maintenance between FIX engines. To ensure ultimate reliability, all messages are persisted to an underlying Chronicle Queue an ultra-low-latency persistence layer that also supports high-throughput distributed replication across multiple hosts. Together, these components are engineered to eliminate bottlenecks, providing the deterministic performance and resilience required by modern high-frequency trading environments.

Key Features of Chronicle FIX:

Feature

Description

Supported standards

  • Supports FIX versions 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0SP1, 5.0SP2, FIXT1.1

  • MiFID II compliance

  • FIX session layer protocols: FIX.4.2, FIX4, FIXT, LFIXT

  • FIX transport layer protocol: FIXS

  • Supports all tags for each version and multiple versions simultaneously

  • ITCH protocol support

High performance and low latency

  • Microsecond Tick-to-Trade latency

  • 99th percentile latency: under 4 microseconds for reading, processing, and writing ExecutionReport messages (150–200 bytes) at 40,000 messages/second

  • 99.9th percentile latency: ~1 microsecond for parsing 200-byte messages and generating 100–200 byte messages

  • Optimized message parser accepts fields in expected order for increased speed (default follows fixprotocol.org documentation; any FIX-valid order supported with minimal latency impact)

  • Networking optimised for Solarflare network cards

  • Schema optimisation: generates a streamlined schema from actual FIX log usage for higher performance

Scalability and load balancing

  • Handles 100,000 messages per second per session (100–200 bytes per NewOrderSingle/ExecutionReport)

  • Comfortably processes one million messages per second on typical enterprise hardware

  • Supports hundreds of concurrent connections with minimal latency impact

  • Load balancing and routing based on standard and custom tags via Chronicle FIX Router

Configuration

  • Configurable via YAML files and/or Java code

  • QuickFIX-style XML schema support

  • Dynamic reconfiguration without engine restart, including:

    • Adding or deleting FIX sessions

    • Updating session settings

    • Adjusting session scheduling

Security

  • Native TLS support for mutual and simple authentication

  • Lightweight proxy for TLS/SSL support, enabling all endpoint combinations without modifying existing applications

  • Encryption of all logged and replicated messages

Monitoring and testing

  • Records connection information per session at multiple configurable levels; compatible with visualization tools like Splunk

  • Probe interfaces for recording detailed timing events in the FIX engine

  • Web interface for parsing raw FIX messages and displaying them in human-readable format with detailed field information

  • Command-line tools for debugging and testing

  • Tools for reading or dumping logged FIX messages

  • Deterministic replay of historical FIX messages from Chronicle Queue into Chronicle FIX, enabling reproduction of production issues and testing of experimental strategies

  • High-performance client stress testing

Memory management

  • Engineered for minimal garbage generation

  • Zero-copy between FIX messages and data model, reducing garbage collection and increasing speed

  • Runtime code generation for compact code and efficient CPU cache usage

  • Buffer recycling and use of object pools/mutable StringBuilders: end-to-end message handling with less than one byte of garbage per message (on average)

  • Pre-allocated memory for message objects avoids dynamic allocation

Failover

  • Automatically detects communication link failures and reconnects FIX sessions

  • Supports failover to a hot secondary via replication in three modes:

  • Synchronous: main server waits for secondary acknowledgment before publishing messages, ensuring reliability

  • Asynchronous: relaxed acknowledgment for balanced resilience and latency

  • Custom: clients define their own replication tolerance and behavior

Web user interface

  • User-friendly web interface for configuring, maintaining, and monitoring sessions (routing or non-routing) and querying message logs

  • Visualizes all configured sessions, their status (active, inactive, etc.), and live sequence numbers

  • Search historic FIX messages by field name, tag number, SessionID, free text, or combinations, displaying messages in human-readable format with detailed field info

  • Interactive environment with helpful configuration property information to prevent and detect errors before runtime

Customisable properties

  • Customizable session-level messages, including exchange-specific fields (e.g., custom login object with username and password)

  • User-defined accept strategies for connections (e.g., whitelist IP addresses)

  • Custom replication timeout and acknowledgment settings

  • Alternative event loop and pausing strategies (busy spin, back-off wait, or external event loop implementation)

  • Bind FIX engine and replication event loops to isolated CPU cores for lower latency

  • Customizable message sequence number management with persistent session state via Chronicle Queue (replication available with Chronicle Queue Enterprise license)

  • Custom connection strategy: defines order and number of attempts for initiators connecting to server socket addresses

  • Configurable timestamps (microseconds or nanoseconds) per session

  • Optional checksum verification (saves ~0.2 microseconds if disabled)

  • External data structures can be passed to Chronicle FIX

  • Modular framework allows flexible per-session configuration for:

  • Message persistence

  • Message parsing

  • Message validation

  • Message handling

Supported environments

  • Java 8, 11, and 17 on Oracle, OpenJDK, and Azul Zing/Zulu (x64 processors)

  • Operating systems: Linux, Windows, and macOS

Other resources and support

  • Runnable examples with descriptions on GitHub

  • On-demand changes: customers can fork the code, submit pull requests, and raise issues on GitHub

  • Full support for all solution components due to the native implementation