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
|