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.

FIXEdge C++

All libraries/servers are pre-configured for and certified with multiple exchangesSoftware 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
High availability
  • Ready to work in cluster
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.

Can't find your platform in the table?

Transports

Additional non-FIX transports are available via pluggable transport adaptors.

Transport Adaptor Description
Camel

Clients can leverage other Camel components from the component list to align with their ecosystem and business requirements. Configuration examples for Camel TA can be found in the /etc/fixedge/camel-ta-distribution directory of the FIXEdge C++ standard installation.

more details

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 EMSApache 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.

Transformation and Routing

  • XML-based DSL for routing and transformation
  • Set of rules joint by OR logical operator, i.e. each rule is executed separately and applied to the original message
  • Rule conditions joint by AND logical operator
  • Message modification
    • Add, change, remove fields
    • Convert between FIX versions
    • Convert between FIX and FIXML
  • Event handling: control session creation, rules failure, non-routed messages, received an invalid message
  • Send messages to multiple destinations
  • Configurable Business logic with Javascript 
  • Configurable FIXML <-> FIX mapping with XSLT scripts
  • Integration with Database over ODBC. Ability to store and get data to/from database
  • Special routing strategies: "Deliver To" and "Order flow" strategies minimize number of rules to be written
  • Implement your own logic, compile and use it as a "plug-in" or "handler" in rules

For detailed information on the rules language, consult our FIXEdge Business Rules Guide.

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.

_Solutions _FIXEdge _2

Nowadays EPAM offers Kubernetes-based FIXEdge cluster to be deployed on premise or in major clouds.

FixEde with Kubernetes

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.