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