FastQuote

Introduction

FastQuote (download) is a currency trading platform that demonstrates how to build modular, low-latency services with Fabric3. FastQuote is organized into two parts:

  • A liquidity provider (e.g. third-party bank or trading network) that publishes currency price feeds 
  • A pricing engine run by a bank that subscribes to the provider feeds, adds margin to the feeds, and publishes the margined prices to the bank's customers

Getting Setup

FastQuote uses the Zero MQ messaging library (out-of-the-box it is configured with JeroMQ for easy setup but may be switched to ZeroMQ). The Liquidity Provider and Price Engine services are run on two Fabric3 instances. Unlike the other samples, FastQuote must be deployed on the servers produced by the Maven modules under the servers directory. These servers demonstrate how to use the Fabric3 Maven Assembly Plugin to build custom runtime images, in this case configured with extensions that provide low-latency features required to run the samples. 

1. Build the FastQuote source

To build FastQuote, execute: mvn clean install.

The build will produce the FastQuote modules and runtime images in the servers/provider/target/image and servers/pe/target/image directories.

2. Start the servers

Boot the Provider and PE runtimes from the server/vm/image/bin directories by executing:

java -jar server.jar

Alternatively, the servers can be started by providing the path to the server.jar archive relative to the current directory. e.g.:

java -jar target/image/bin/server.jar

Understanding the Architecture

The next section explains the FastQuote application architecture in detail.