EPAM B2BITS FIX Antenna Java Failover Extension (FIXAJ FO) is a distributed Storage Service extending local persistence logic of FIX Antenna Java to restore session state in case of failover switch from primary to a backup server. Based on Chronicle and RealLogic Aeron projects, FIXAJ FO enables delivery of FIX messages from FIX applications to distributed FIX Storage Service. FIX applications then can restore the FIX sessions state and sequence numbers from the distributed storage.

The high level diagram below represents main FIXAJ FO components:

FIX Antenna Java Failover Extension Components

Features

  • Allows storing of FIX messages not only locally, but also via distributed  Storage Service by broadcasting selected messages
  • Provides ability to restore FIX session state on another host running backup FIX application to service possible resend requests for a range of FIX messages
  • Allows storing messages into FIX Storage Service when session is temporary in disconnected state for subsequent retransmission to the client after session is re-established

 Main Components

  • Storage Service -  contains implementation of distributed storage node based on Aeron and Chronicle. Storage Service also exposes jersey based REST web service allowing access to session's data store;
  • Storage Service Client - defines a number of client interfaces along with Aeron based implementation, acts as an abstraction layer between FIXAJ extensions and storage service layer;
  • FIX Antenna Java Storage and Session implementations - defines some extra strategies/services deployed on top of FIXAJ:
    • Cluster Message Storage - implementation of FIXAJ MessageStorage interface calling internally Storage Service Client through previously defined interfaces
    • FOFIXSession - implementation and related factory provided with ability to safely shutdown FIX Session in Failover Extension enabled setup and to "send" FIX messages in already disconnected FIX Session (FIX message can be added to FIX Storage Service and later can be loaded from it during FIX resend scenarios or directly)
  • Example "hello world" FIX-based application -  demonstrates  use of FIX Storage Service with two instances of FIX Servers. Application communicates with primary  FIX Server and then interrupts connection with it and establishing the same  FIX Session with the backup  FIX Server, continuing working without loss of messages.

Java Framework and Technologies used

  • Chronicle is a Java project focused on building a persisted low latency messaging framework for high performance and critical applications. The following features were considered as relevant from project perspective:
    • Off heap storage means no extra pressure (almost) on Hotspot GC
    • Selective replication is possible
    • High performance and indexed storage support in single write, multiple readers mode
  • Aeron is an efficient reliable unicast and multicast message transport built around the concept of media driver, so effectively any other protocols (apart from already supported) might be made available.

For any additional information or free trial version of FIXAJ Failover Extension please contact us at sales@btobits.com.