FIXEdge® is an application server providing FIX connectivity to
buy and sell side institutions, exchanges and clearing houses.
It supports all workflows for all asset classes defined in
the FIX protocol
including typical use cases such as:
- Capturing messages from clients. Serves as an Order Entry
Gateway/router
- Entering orders/quotes to markets. Can be combined with check
for
pre-trade risk
- Capturing messages from a venue and saving them to a DB/message
queue/plain text file. Serves as a FIX aggregator
- Fanning-out quotes/market data publishing. One FIX message can
be distributed to many sessions (1-to-Many)
- Generic FIX message routing. Smart message router with
configurable rules and message normalization/enrichment
Client applications communicate with FIXEdge via one of multiple
supported message protocols (e.g. JMS, IBM MQ,REST) employing
transport adaptors. It is designed to be easy to install,
configure, administer and monitor sessions and trading information
flows. It is written in C++ and has a performance profile suitable
for the needs of all clients up to and including large sell-side
institutions and large volume traders. FIXEdge adheres to the best
information security practices defined in
FIX security recommendations.
It can be deployed on an individual node or multiple nodes of a
load balanced cluster, on premises or in the cloud.
FIXEdge comes with a rich UI for monitoring session statuses and
parameters in real time on desktop app or web browser.

All libraries/servers are pre-configured for and certified
with multiple exchanges. Software escrow is available on demand.
Features
Feature |
Description |
High throughput / low
latency |
FIXEdge leverages FIX Antenna C++ Engine's
performance.
The engine has been benchmarked on
this hardware with the following results:
- FIX Engine is able to handle more than 500 sessions
- FIX Antenna C++ adds about 18 microseconds latency (with 99
percentile) and the maximal total steady throughput is about 500000
msg/sec
Benchmark scenarios results:
- 1-to-1 Router without message transformation.
-
- Round-trip time with persistence: 31 us (with 99
percentile)
- We observe average response times below 1 millisecond for 100
sessions with a message rate of ~ 1500 msg/sec
- 1-to-100 fanout scenario
-
- Message persistence and FIX version conversion. About 1000
msg/s incoming throughput and 100 000 msg/s outgoing
throughput
- No message persistence and FIX version conversion. About 2000
msg/s incoming throughput and 200 000 msg/s outgoing
|
Supports standard
FIX |
FIXEdge uses FIX Antenna C++ on a FIX layer and thus inherits
all FIX Antenna's functionality.
- 100% FIX
standard compliance:
- Supports all FIX message types (pre-trade, trade, post-trade,
market data)
- Support of high-precision timestamps in accordance with
MiFID II requirements
- Message validation
- Customizable FIX protocol with user-defined tags and message
types. Create your own FIX dialect e.g. defined extra field for a
message, change "required" attribute in a friendly XML
format and QuickFIX compatible format.
- Guaranteed delivery
- Relies on the store and forward technique
- Flat files are used for persistence to achieve maximum
performance
- Standard FIX routing based on DeliverTo and OnBehalfOf
fields
- Session Qualifier support for identifying different sessions
with the same SenderCompId and TargetCompId
- Support a custom symbol instead of SOH
|
Session
management |
- Multiple session management
- Supports up to 500 concurrent sessions on a single instance on
recommended hardware. Number of concurrent sessions can be
increased if more CPUs are added
- Each session can be configured separately. FIX Dialect can be
configured for a session
- Smart session scheduling:
- Sessions start and termination at pre-defined times and
dates
- CRON expressions for sessions schedule accurate to the
second
- Days off in sessions schedule
- Support of different time zones
- Ability to assign one schedule to multiple
sessions or configure it per session
|
Smart resend request
processing logic |
- Four
strategies for processing out-of-sequence messages:
-
- FIX protocol compliant processing (ResendAlways)
- Don't save resend request duplicates (RequestOnce)
- Ignore sequence gaps when message sequencing is not important
(Ignoregap)
- Delay message processing till sequence synchronization
(Queue)
- Ability to limit the volume of messages sent as a reply
on
resend request
|
Delivery modes |
- Later delivery mode allows unsent messages to be stored in
managed queue and delivered later by schedule or when
connection is re-established
- Undelivered messages are provided to the counterparty on
connection via FIX standard resend request mechanism
- Rejecting mode allows messages that cannot be sent during some
reasonable time (customizable), to be rejected
- Configurable Throttling
|
Highly customizable FIX
session level |
- Multiple 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
- Use of LDAP as an authentication service for incoming
sessions
- SSL/TLS
- Support of SSL certificates with passwords
- An initiator can use a certificate signed by counterparty's CA
certificate for authentication
- Auto-accept incoming sessions (to simplify development and
testing) and auto-decline non pre-configured sessions
- CME Secure Logon support. (See
How to connect to CME Globex using Secure Logon for
details)
- Support for the following SSL certificates formats: pfx files,
.pem encoded files, .der - binary encoded files in ASN1
standard. (See
How to configure built-in SSL support for FIX session in
FIXEdge for details)
- DNS
Spoofing detection
- Filtering against IP range to be used for connection
- API for FIX session authorization via a remote authorization
service
- Ability to configure ciphers for SSL connections (See How
to use SSL with FIX Antenna C++ and FIX Antenna .NET for
details)
- FIX acceptor sessions can have dedicated port
|
Reliability |
- Protection from abnormal user behavior
- Overload protection:
- Monitoring and management of incoming load (A number for
messages and throughput)
- Monitoring and management of outgoing queue in order to protect
the application from slow consumers
- Option to switch between primary and backup sessions
automatically in case one of them becomes
unavailable
- FIXEdge compiled with protection from buffer overflow attacks
(FORTIFY_SOURCE)
- FIX Engine detects unfinished transactions in persistent
storage in case of failure and prevents work with inconsistent
data
-
Limits the maximum number of connections waiting for
logon
-
Time limit for sending a logon message before closing the
socket
- Denial of Service protection from buffer overflow attack.
Ability to limit a memory buffer for incoming
messages.
More details
here |
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
- Ability to use transient sessions, which do not use any
persistence. This significantly increases performance while
forgoing recovery. Applicable when recovery is not required (e.g.
for market data) or when persistence is done by an application that
uses the FIX Antenna engine
|
Message routing and
transformation |
- Built-in powerful rule engine to store, modify and route FIX
messages
-
Smart logic for Cancel, Cancel\Replace for Later delivery
mode
|
Monitoring and
administration |
- Built-in remote monitoring and administrative interface for
sessions monitoring and management
- Friendly XML-based DSL for administrative instructions: easy to
read, easy to extend
- Logging to plaintext files
- Logging with Log4cplus
as system backend for writing logs to a log collector via TCP (See
Log4Cplus Usage for details). e.g:
option for logging to
Splunk
- Ability to
log important lifecycle events (i.e. application starting,
application complete) in CEF format, e.g for
ArcSight
- Admin
REST API
- Email alerting and notifications on Business Layer
- Rich monitoring
and administration GUI out of the box
|
High
availability |
|
Packaging |
FIXEdge is supplied as an installation package.
The package includes:
- Binaries (executable and libraries)
- Scripts to register/unregister/start/stop FIXEdge as
service/daemon
- FIX Protocol with actual expansion pack
dictionaries
- Default configuration files
- FIXICC, a monitoring
and administration GUI
- Software escrow is available on demand
FIXEdge package is available as a docker
container.
|
Hosting options |
FIXEdge could be hosted by EPAM in an EPAM cloud
environment or in our partners data centers: Lucera and OptionsIT |
Platforms
Operating
System |
- Windows
- Linux RHEL/CentOS 7
- Linux RHEL/CentOS 8
- Docker
Support for other platforms is
available on demand.
|
Transports
Additional non-FIX transports are available via pluggable
transport adaptors.
Transport Adaptor |
Description |
Kafka |
The Kafka TA is intended to communicate FIX messages
to other applications using the Kafka streaming platform as
middleware.
more details
|
IBM MQ |
IBM MQ Transport Adaptor is an add-in for FIXEdge that allows
clients to communicate with FIXEdge over IBM MQSeries
middleware.
more details
|
TIBCO RV |
Tibco RV Transport Adaptor is intended for communication
between FIXEdge and third-party applications using Tibco
Rendezvous protocol.
more details
|
JMS |
JMS Adaptor for FIXEdge is intended for communication with
FIXEdge from third-party applications via JMS. The JMS Adaptor is a
library that exposes a set of methods for communicating with
FIXEdge's Transport Layer. Can be connected to
TIBCO EMS, Apache ActiveMQ
more details
|
RabbitMQ |
RabbitMQ Transport Adaptor is intended for communication
between FIXEdge and third-party applications
using RabbitMQ as a middleware.
more details
|
REST |
REST Acceptor Transport Adaptor is a module in FIXEdge working
as a REST server that handles http(s) REST POST requests, extracts
data and converts it to FIX format. The message body of incoming
messages can be represented as a raw FIX message or JSON
more details
REST Initiator Transport Adaptor is a module
in FIXEdge that sends FIX message from the Business Layer to a
destination system as an http(s) REST POST request. The message
body of outgoing messages can be represented as raw FIX message or
JSON.
more details
|
Java (Universal) |
FIXEdge in-built C++ Transport Adaptor that can be used for
interaction between FIXEdge and any other Transport Adaptor written
in Java.
FIXEde provides an interface for integrating a user's Java code
for message processing.
more details
|
Custom C++ |
FIXEdge provides an SDK with an interface for
integrating a user's С++ code, compiled to the shared library for
message processing.
more details
|
SMTP |
SMTP Transport Adaptor is intended to send FIX messages
from the FIXServer to clients using the SMTP protocol (to
email); FIX email message can be automatically converted to a
standard email message
more details
|
Simple Sockets |
The Simple XML Socket Transport Adaptor is intended
for communication between FIXEdge and third-party
applications using XML messages.
more details
|
Simple FIX
Sockets |
The Simple FIX Socket Transport Adaptor provides an easy and
quick way for client applications to communicate with FIXEdge using
FIX protocol.
more details
|
Solace |
Solace Transport Adaptor is intended for communication between
FIXEdge and third-party applications using the Solace event broker
as middleware.
|
High Availability
FIXEdge supports work in multiple node clusters with state
replication, failover and recovery functionality. Historically
FIXEdge clusters were based on the RedHat 6/7 pacemaker with
corosync and are used in production in some of the most demanding
environments in the world.
Nowadays EPAM offers Kubernetes-based FIXEdge cluster to be
deployed on premise or in major clouds.

Major FIXEdge cluster features are:
- File-based or database-based persistence
- Automatic fast recovery state after failure
- Leveraging K8s features such as: persistent volume claims,
config maps, secrets, services
- Supports two shared storages scenarios:
-
- Organizing shared storage utilizing third-party physical shared
storage hardware or third-party shared storage software;
- Delivered in a form of Helm chart for easy installation
Disaster Recovery
FIXEdge is supplied with Logs Replication
tool to organize continuous persistence synchronization across
master node to one or more backup nodes in disaster recovery
site.
Logs Replication
tool that can be used not only for persistence synchronization
but for organizing real-time backing up as well.
Security
FIXEdge follows the
recommendations published by the FIX Trading Community to
address all the current issues and challenges on the
the cybersecurity front, to satisfy best practices
and all the crucial requirements of the industry.
The following security features are supported in
FIXEdge:
- Internal static code analysis against buffer overflows and
other security breaches
- Protection from abnormal user behavior (including DDoS
attacks)
- SSL/TLS with keys management for both initiator and acceptor
roles
- Client certificate authentication
- Support for custom encryption algorithms
- FIX messages validation
- Filtering against IP range to be used for connection
- Settings for TCP protection
See
FIXEdge Security Assurance for details.
Administration
FIXEdge configuration and administration is supported via
the FIX Integration
Control Center (FIXICC).
FIXICC is used for configuring, monitoring and administrating
FIXEdge. Specifying "FIXEdge" as a server type when adding a new
server in FIXICC gives access to additional FIXEdge-related
functionality.
FIXICC works with FIXEdge using the FIXICC Agent, which is part
of the installation package.
Major FIXEdge specific functions:
- Start and Stop server
- Change server configuration
- Modify routing rules
- Reload routing rules (instruction to enact the latest changes
if the latter are made while the server is running)
- Create and modify sessions schedules
- Export and import configuration
- Export logs
Refer to FIXICC
User Guide for details.