FIX Antenna
FIX Antenna is a commercial FIX (Financial Information eXchange) protocol engine and connectivity framework used in electronic trading systems to build, manage, and optimize communication between trading applications and financial markets. It is developed by B2BITS (Business-to-Business Integration Technologies), a vendor specializing in financial messaging and market connectivity solutions.
FIX engine is built using real time design patterns proven over 10 years of practice. The transport layer is implemented based on Boost.Asio. The design of FIX Antenna C++ allows supporting various modes to maximize high throughput, to achieve low latency, or to operate in a custom mode with balanced throughput and latency. The internal design allows also to control a number of threads by fixing this number in case of multiple FIX sessions to share time between them or by dedicating threads for individual FIX sessions (2 threads per session).
Access to low level parameters is provided to tune TCP/IP performance (Nagel's algorithm), choose the type of storage for the state recovery, collect run time statistics, measure time taken by a particular operation, as well as turn on and turn off a particular feature, and many others.
Why do we use FIX Antenna?
We use FIX Antenna because implementing FIX manually is difficult and risky:
• FIX protocol is strict and error-sensitive
• Session state must be carefully managed
• Message sequencing and recovery are mandatory
• Low latency is required in trading systems
FIX Antenna provides a production-grade, optimized FIX engine so developers can focus on trading logic instead of protocol mechanics.
When should we use it?
Use FIX Antenna when building:
Institutional trading systems
• Order Management Systems (OMS)
• Execution Management Systems (EMS)
• Broker connectivity gateways
Low-latency trading applications
• Algorithmic trading
• High-throughput order routing
Multi-market connectivity platforms
• Connecting to multiple exchanges and brokers
• Aggregating liquidity providers
Enterprise financial infrastructure
• 24/7 production trading systems
• Regulated environments requiring reliability
Do NOT use it when:
• You are learning FIX protocol
• You need a free/open-source solution
• Your application does not involve financial trading
Key Features of FIX Antenna
High performance
• Optimized for low-latency message processing
• Suitable for high-throughput trading environments
FIX protocol support
• FIX 4.0 → FIX 5.0 SP2
• Support for custom extensions
Session management
• Logon/logout handling
• Heartbeats and connection monitoring
• Sequence number tracking and recovery
Reliability mechanisms
• Automatic resend requests
• Gap detection and recovery
• Failover support
Connectivity layer
• TCP/IP communication
• Multi-session support
• Multi-venue connectivity
Extensibility
• Custom message handlers
• Plugin-based architecture for trading logic
Monitoring & logging
• Message tracing
• Diagnostics tools for FIX flows
Key Components
1. FIX Engine Core
Handles:
• Message parsing
• Message creation
• Protocol compliance
2. Session Layer
Manages:
• Connection lifecycle
• Sequence numbers
• Recovery logic
3. Transport Layer
• TCP socket communication
• Asynchronous messaging
4. Application Layer
• Trading logic integration
• Order/execution handling
5. Data Dictionary
• FIX message definitions
• Tag/field validation
Advantages of FIX Antenna
• High performance: Designed for real-time trading environments
• Proven in production: Used in financial institutions globally
• Flexible integration: Works with multiple programming languages and systems
• Strong reliability: Built-in recovery and fault tolerance
• Enterprise features: Includes monitoring, logging, and support tools
Disadvantages
• Commercial product
• Requires licensing fees
• Vendor dependency: You rely on B2BITS ecosystem and updates
• Complexity: Requires understanding FIX protocol and trading systems
• Not beginner-friend: Overkill for learning or small-scale applications
Other Features of FIX Antenna API
• The highest performing FIX engine in existence.
• Delivers over 60,000 messages per second.
• Benchmarked at 30,000 messages per second across 200 sessions.
• Adds up to 16 microseconds' latency on 100 Mbps network with persistence and 6microseconds' latency on 100 Mbps network without persistence.
• Allows configuring sending/receiving prioritization for session.
• In transient mode it can deliver over 115,000 messages per second. Please refer to the latest benchmarks of FIX Antenna C++, Windows- and Linux-based.
Delivery Modes
• Later delivery mode allows unsent messages to be stored in queue and delivered later when connection is re-established. Recommended configuration for a session, where execution reports are to be delivered e.g. session with traders
• Rejecting mode allows messages, which cannot be sent during some reasonable time (customizable), to be rejected. Recommended configuration for a session, where orders are to be delivered e.g. session with exchanges
Highly customizable FIX session level
• Different modes of handling sequence number during logon and reconnect
• Intraday logout tolerance
• Custom logon message
• Force sequence number reset on logon
Security
• Standard FIX authorization utilizing username and password fields in FIX Logon message
• FIX encryption to work in non-private networks: DES and PGP-DES-MD5 schemes
• SSL tunneling
• Auto-accept incoming sessions (to simplify development and testing) and auto-decline non pre-configured sessions
Reliability vs. Performance
• Supports transient sessions, which do not use any persistence. This significantly increases performance giving up recovery. Applicable when recovery is not required (e.g. for market data) or when persistence is done by the application, which uses the FIX Antenna engine
Performance tuning
• Ability to enable or disable Nagle's algorithm to minimize latency or maximize throughput
• Ability to configure (or turn off) the number of messages to be joined in a bunch before sending
• Ability to dedicate threads for session for sending and receiving data, to minimize overhead on context switching
Monitoring and administration
• Built-in remote monitoring and administrative interface for sessions monitoring and management
• Utilizing FIX session and the same FIX listen port for administrative session
• Friendly XML-based DSL for administrative instructions: easy to read, easy to extend
• Public API to override and/or extend existing administrative instructions
• Rich monitoring and administration GUI out of the box
Message composition API
• Provides the following functionality:
- Creating a message singleton by FIX protocol version and message type
- Creating a message from a raw FIX string (parse)
- Serializing a FIX object message to raw FIX string
- Adding, removing, modifying FIX fields and repeating groups
- Validating message
• FIX flat message model - generic model to work with the abstract FIXMessage class via fields and groups getters and setters, which gives the highest performance
• FIX object model - each FIX message type is a class with FIX fields as members, using intellisense to make working with FIX business object more pleasant
Integration
• User-friendly intuitive pure ANSI C++ public interface
• Is supplied as a dynamic library (.dll) for Windows or a shared object dynamic library(.so) for Linux