FIXEdge

FIX server FIXEdge is an application server providing FIX connectivity to multiple clients.  Client applications communicate with FIXEdge through one of multiple transport protocols (e.g. Simple Sockets, JMS, IBM MQ) employing transport adaptors. It is designed to be as easy as possible to install, configure, administrate and monitor 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 comes with a rich UI for monitoring session statuses and parameters in real time.

FIX server FIXEdge is mostly used as a generic FIX messages router. Combined with Pre-Trade Risk Check Module, it provides also capability for pre-trade risk check, restricting activities of one or multiple traders.

FIXEdge _Conceptual _View

View larger image

All libraries/servers are pre-configured for and certified with multiple exchanges, including CME, ICE, INET and many others. Software escrow is available on demand.

 

Feature Description
High throughput / low latency

FIXEdge leverages FIX Antenna C++ Engine's performance.

The engine has been benchmarked at 30,000 messages per second across 200 sessions FIX Antenna C++ adds up to 22 microseconds' latency on 100 Mbps network with persistence and 14 microseconds' latency on 100 Mbps network without persistence.

FIX Antenna C++ allows configuring sending/receiving prioritization for session.

In transient mode FIX Antenna C++ can deliver over 115,000 messages per second.

Supports standard FIX

FIXEdge uses FIX Antenna C++ on a FIX layer and thus inherits all FIX Antenna's functionality.

  • 100% FIX standard compliance:
    • FIX 4.0-5.0SP2 and FIXT 1.1 including Extension Packs
    • FAST 1.1
  • Supports all FIX message types (pre-trade, trade, post-trade, market data)
  • 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
  • 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 management
  • Multiple session management
    • Supports up to 200 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 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
Delivery modes
  • Later delivery mode allows unsent messages to be stored in queue and delivered later when connection is re-established
  • Rejecting mode allows messages, which cannot be sent during some reasonable time (customizable), to be rejected
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
  • Use of LDAP as an authentication service for incoming sessions
  • FIX encryption to work in non-private networks: DES and PGP-DES-MD5 schemes
  • SSL/TLS
  • Auto-accept incoming sessions (to simplify development and testing) and auto-decline non pre-configured sessions
Reliability
  • Protection from abnormal user behavior
  • Overload protection:
    • Management of incoming queue
    • Management of outgoing queue
  • Option to switch between primary and backup sessions automatically in case one of them becomes unavailable
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 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
Message routing and transformation
  • Built-in powerful rule engine to store, modify and route FIX messages
Monitoring and administration
  • Built-in remote monitoring and administrative interface for sessions monitoring and management
  • Utilizing FIX protocol and the same FIX listen port for administrative session
  • Friendly XML-based DSL for administrative instructions: easy to read, easy to extend
  • Rich monitoring and administration GUI out of the box
High availability
  • Ready to work in cluster
Packaging

FIXEdge is supplied as an installation package.

The package includes:

Hosting options FIXEdge could be hosted by EPAM in EPAM cloud environment or in our partners data centers: Lucera and OptionsIT

Platforms*

Operating System
  • Windows
  • Linux RHEL/CentOS 6
  • Linux RHEL/CentOS 7
  • Solaris 10

 * Support for other platforms is available on demand.

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

Transport Adaptor Description
IBM MQ

IBM MQ Transport Adaptor is an add-in for FIXEdge that allows clients to communicate with FIXEdge over IBM MQSeries middleware.

For more details refer here

TIBCO RV

Tibco RV Transport Adaptor is intended for communication between FIXEdge and third-party applications using Tibco Rendezvous protocol.

For more details refer here

JMS

JMS Adaptor for FIXEdge is intended for communication with FIXEdge from third-party applications via JMS. 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

For more details refer  here

RabbitMQ

RabbitMQ Transport Adaptor is intended for communication between FIXEdge and third-party applications using RabbitMQ as a middleware.

For more details refer here

Java (Universal)

FIXEdge in-built C++ Transport Adaptor which can be used for interaction between FIXEdge and any other Transport Adaptor written in Java.

For more details refer here

SMTP

SMTP Transport Adaptor is intended to send FIX messages from FIXServer to clients using SMTP protocol  (to email); FIX email message can be automatically converted to a standard email message

For more details refer here

Simple Sockets

The Simple XML Socket Transport Adaptor is intended for communication between FIXEdge and third-party applications using XML messages.

For more details refer here

Simple FIX Sockets

The Simple FIX Socket Transport Adaptor provides the easy and quick way for the client applications to communicate with FIXEdge using FIX protocol.

For more details refer here

  • 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 field
    • Convert between FIX versions
    • Convert between FIX and FIXML
  • Event handling: control session creation, rules failure, non-routed messages
  • Send message to multiple destinations
  • Support additional languages: inject Javascript and XSLT
  • Store data from messages to files or database
  • Special routing strategies: "Deliver To" and "Order flow" strategies minimize number of rules to be written
  • Implement you 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.

  • File-based persistence
  • Automatically recover state after failure
  • Leverage OS clustering feature such as: virtual IP, shared storage, cluster resource management

Windows/Linux Cluster

View larger image

For more information on how to set-up FIX Edge on cluster refer to the cluster installation manual

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 server type when adding new server in FIXICC allows to access additional FIXEdge related functionality.

FIXICC works with FIXEdge using the FIXICC Agent, which is a part of the installation package.

Major FIXEdge specific functions:

  • Start and Stop server
  • Change server configuration
  • Modify routing rules
  • Reload routing rules (instruction to bring in force latest changes if latter are made while server is running)
  • Create and modify sessions schedules
  • Export and import configuration
  • Export logs

Refer to FIXICC User Guide for details.