Overview

The FIX Trading Community web site has posted a list of common questions about FIX Engines. This page brings together our answers for these questions.

Capabilities/throughput

Chronicle FIX supports:

  • 100,000 messages per-second per-core. (`NewOrderSingle` / `ExecutionReport` sized messages)
  • FIX services which need to have a 30 micro-seconds tick to trade.
  • FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 sp 1, 5.0 sp2, FIXT 1.1 is planned.
  • Failover of a FIX server to a hot spare via replication
  • Encryption of all messages logged and replicated.
  • Zero-copy between the FIX message and your data model. An intermediate data model is provided for convenience, but it is not required.
  • Designed for ultra low GC systems (minor GC less than once a day)

Technologies used

  • Core Java 8.
  • Build on largely Open Source libraries, also from Chronicle.
  • YAML for configuration.
  • QuickFIX style XML Schema files.
  • Source on GitHub.

 

Support and services offered

Chronicle Software offers:

  • Silver support – Long London day, 5 days a week
  • Gold support – 24/7
  • Platinum support – 24/7. Includes three months a year on-site, on the days of your choice.

 

Versions supported

Question: Does the Chronicle FIX engine support all current FIX versions?

Answer: FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 sp 1, 5.0 sp2, FIXT 1.1 is planned.

 

Question: Does it support all tags of each version?

Answer: All tags for these version are supported.

 

Question: Can it support more than one FIX version at once?

Answer: A Chronicle FIX engine supports being an acceptor and an initiator, and each session can have a different FIX version and/or custom FIX schema.

 

Question: What is involved in supporting new versions of FIX?

Answer: You start with an XML schema to generate the code for that schema. You can customise the behaviour further using plugin code. You could add a version of FIX which which we don’t have on our supported list.

 

Support for asset classes other than equities

Question: Can the Chronicle FIX engine support fixed income, derivatives, FX etc. ?

Answer: We support all the standard messages/field/components, for any asset class.

 

Question: What is involved in adding support for additional products?

Answer: The level of support you need is orthogonal to the products you want. Gold support covers the open source products and any licensed products. You can also have Gold Support for the open source products alone.

 

High availability, load balancing, and scalability

Question: Does the Chronicle FIX engine support a software-based high-availability option for high-volume, many-connection, implementations?

Answer: We support failover to a hot spare, using replication. When a message is published we can choose to wait for the message to be replicated/acknowledge before sending it; this ensures that it isn’t lost. We do not offer a load balancing facility at the moment, however one dual-socket server can comfortably handle one million messages per second.

 

Speed and robustness

Question: How many messages per second can the Chronicle FIX engine process?

Answer: Chronicle FIX can comfortably handle 100,000 messages per-second, per-core, and one million message per-second, per-server.

 

Question: What fall-back and redundancy options are available?

Answer: You can set a hot spare using Chronicle Queue Enterprise to provide replication of the logs.

 

Encryption options

Question: Does the Chronicle FIX engine support common encryption methodologies?

Answer: Chronicle FIX can encrypt the logs stored on disk, and when the logs are replicated.

 

Question: Does the Chronicle FIX engine support SSL?

Answer: Not currently, but this could be added if you need it. The `stunnel` TLS proxy (as recommended by http://fixtradingcommunity.org[fixtradingcommunity.org] ) can be used to transparently encrypt FIX message traffic, between you and your counter-party.

 

Ability to implement per-connection logic

Question: Each FIX connection tends to be slightly different. Can you embed counterparty-specific logic within the engine, rather than having to implement from outside your systems?

Answer: You can have per session:

  • data model for storing messages
  • custom parser
  • message validation
  • message handling

You can also share this logic to minimise the overhead of managing different providers. For example, You can combine the custom schema of 20 providers into a single schema; even if they use different versions of FIX. This allows you to code to one aggregated data model.

Note: It is assumed each session will have at most one connection.

 

Platforms supported

Question: Not all FIX engines run on all platforms. Some FIX engines sell themselves on the basis that they will run on all platforms. Others take the opposite view, and market themselves on the basis that they are optimized to run on one platform only. What platforms does Chronicle FIX support?

Answer: Chronicle FIX supports:

  • Oracle Java 8
  • OpenJDK 8
  • Azul Zing/Zulu 8 on x64 processors.

We support Linux, Windows, and MacOSX.

 

Architectural flexibility

Question: Does the engine restrict your implementation to a specific architecture

Answer: Realistically, it has to be in Java.

 

Question: Are you forced to use a database for persistence, or for example, a particular type of middleware?

Answer: Your data store must be accessible from Java.

Provided as a set of class libraries, or a FIX-in-a-box solution.

While we offer a set of class libraries, you could customise heavily. We use the same libraries to implement our non-FIX Engine. Most clients use it as FIX-in-a-box. We feel that customers like the fact that they can take it apart and rebuild it the way that they require, outweighs potential technical risks.

 

Question: FIX engines supplied as class libraries (APIs) offer complete flexibility over our implementation, but we have to do the work. Is coding required?

Answer: Chronicle want to offer complete flexibility, even if you won’t use more than a fraction of the features. As the product matures, we want to reduce the amount of work you need to do. However, there will always be some customisation that you will need to do to lailor your solution.

 

Question: FIX-in-a-box solutions provide ready-made functionality for many commonly used activities, and seamlessly handle network connectivity. They are easier to implement but aren’t so flexible. Is coding required?

Answer: We attempt to handle all the session messages and details automatically from configuration. You should only have to worry about the application messages most of the time. We support custom session messages as well.

 

Access to source code

Question: Some FIX engine vendors make available the source code so that you can modify their product. Typically this is only done for a fee, and for the largest clients. Does Chronicle make the source code available?

Answer: Our FIX engine is in a closed source repository on GitHub. Once you have a license and have access, you can fork the code, issue `Pull` requests, and add issues just as you can on GitHub. Out support agreements include some days a month for bespoke development, so you can get us to make the changes if you prefer.

 

Support offered

Question: Is on-site support available?

Answer: Platinum support includes three months a year on-site, on the days of your choice.

 

Question: What levels of support are offered?

Answer: Chronicle Software offers:

  • Silver support – Long London day, 5 days a week
  • Gold support – 24/7
  • Platinum support – 24/7. Includes three months a year on-site, on the days of your choice.

 

Upgrades and updates

Question: How many updates and upgrades does the license entitle you to?

Answer: The perpetual license alone entitles you to updates/upgrades for 120 days. If you get support, it includes updates for the entire period covered by the support.

 

Question: Does Chronicle charge a license fee for an engine in a disaster recovery / stand-by environment?

Answer: How you use the product doesn’t affect the price.

 

Cost and pricing options

Question: Is the cost reasonable? Is Chronicle Software flexible around how we would like to pay?

Answer: Chronicle Software can be flexible for smaller clients. To date we have only had real interest and sales for business unit licenses covering a development team.

 

Monitoring tools

Question: A good error translator can prevent you spending of a great deal of time trying to find an error message. Does the Chronicle FIX engine come with tools that allow monitoring of your FIX sessions?

Answer: We have an HTML5 GUI for monitoring sessions, and querying message logs.