2. Performance
✔ Zero object allocation/garbage collection in steady
state and absence of protocol errors
✔ Lock free, zero copy, small CPU cache footprint
✔ Minimum queuing, TCP send/receive is done on a
user thread (preferably affinitised to an isolated CPU
core)
3. Latency
✔ Ultra-low latency at mean and tail percentiles
➢ 400ns latency for a typical FIX message from client
code to NIC driver at 50th percentile and sub-500ns
for 99.9 percentile
➢ 550ns latency from NIC driver to client code at 50th
percentile and 700ns for 99.9 percentile
✔ Latency stamping in key areas for querying
4. Throughput
✔ Maximum sustainable send throughput 2,669,000
msgs/sec for a typical FIX message; receive
throughput 2,213,000 msgs/sec
5. API
✔ Strongly-typed Message API, all fields are serialized
or parsed in session code, thus avoiding hidden
latency of second-pass parsing
✔ Message and session API/session configuration
optimized for migration from QuickFIXJ with few API
exceptions in latency-sensitive areas
6. Implementation
✔ Written in Java, Java NIO is rewritten as a native
library to avoid locking and object allocation
✔ Optimised for Kernel-bypass network libraries,
tested with latest SolarFlare/OpenOnload
7. Tests
✔ Tested on Linux and Windows
✔ Passed LMAX conformance testing
✔ Passed QuickFixJ acceptance test suite
8. Session Level Configuration
✔ File based or programmatic configuration, e.g. read
from database
✔ Support for start/stop date/time scheduling
✔ Full support for FIX protocol versions from 4.0 to
5.0SP2
✔ Full support for Heartbeat, TestRequest, Resend,
(Business)Reject, SequenceReset message types
9. Session Level Configuration (cont.)
✔ Full support for multiple Initiators/Acceptors
inside the same application process
✔ Flexible reset options, on
Logon/Logout/Disconnect
✔ Session username/password
✔ Support for user-defined fields
10. Connection options
✔ Support for heartbeats
✔ Logon/Logout timeout
✔ Support for socket options, including
TcpNoDelay, low latency options on by default
11. Connection options (cont.)
Initiator
✔ Automatic initiator reconnect
✔ Support for alternative target hosts/ports
Acceptor
✔ Sender host/port validation
12. Message validation (on by default)
✔ Full CompId validation
✔ Full incoming sequence number validation
✔ Check required fields are present in
message/header/trailer/repeating groups
✔ Check enum field values are in valid range
13. Message validation (cont.)
✔ Flexible invalid message rejection
(warning/disconnect)
✔ Support for custom FIX specs
14. Persistence and message resend
Persistence
✔ In/Out sequence numbers
✔ Sent messages
Message resend
✔ Configuration option to suppress the resend
of certain message types