Skip to content
michaeldiamant edited this page Jan 2, 2012 · 4 revisions

What is Arriba?

Arriba is a performant FIX engine implementation that utilizes the Disruptor pattern. FIX protocol handling is separated from the underlying transport layer, which allows transport implementations to be swapped in. Currently, Arriba provides a Netty integration to receive and to transmit FIX messages.

Needed Features

Arriba is not yet feature complete. Here are some high-level features that are required to make Arriba production ready.

  • Handle sequence number gaps as per the FIX protocol.
  • Detect and properly process (e.g. generate session-level reject) semantically invalid FIX messages.
  • Support creating and receiving application-level messages (e.g. business message reject, order cancel-replace request, etc.)
  • Create performance test framework to identify bottlenecks.
  • Expose application-level callbacks (e.g. onConnect(), onDisconnect()) to support higher-level application development.

Desired Features

Looking past the features needed to push Arriba into a production system, there are features that will make Arriba more performant and simpler to use.

  • Replace Netty queues with Disruptor pattern.
  • Replace existing hand-generated inbound FIX messages with a simple and flexible Scala-based source code generator.
  • Instrument JMX support to monitor Arriba at run-time.
  • Expand existing repeating group support (one level) to handle nested repeating groups with constant read-time data structures.
Clone this wiki locally