Prodigy
Overview
Section titled “Overview”Prodigy is an exchange engine which: lists symbols, prices them via various means, and matches orders to generate trades. In addition, it provides news feeds and other supporting exchange services. It can be accessed either via industry standard FIX protocol and managed via its market control API.
Its matching engine has 2 parts:
- Core - This contains the general matching engine functionality.
- Plugins - A plugin implements a markets rules and behaviour.
Multiple plugins can be installed to run multiple markets concurrently.
By implementing market rules and behaviour in a plugin, it makes supporting new markets or adding functionality to existing markets far easier. Supporting a new market only requires developing a plugin - not implementing a completely new matching engine. Adding new capabilities to a market only requires testing its plugin. In both cases, the core is not modified.
In addition, plugins allow hosting of different versions of the same plugin. This can facilitate upgrading and allow other systems to incremental move from one version to the next. Upgrades can be smoother and risks reduced. This is further discussed in market development.
Further information
Section titled “Further information”- Market Control - Add and remove listings on markets. Also publish news items.
- Market Reports - Obtain reference and historical data.
- FIX - Order requests, execution reports, and market data.
Extensibility
Section titled “Extensibility”- Market Model plugins - Extend the basic model of a Symbol, Order, or Trade with additional business information.
- Execution Engine plugins - Add new logic for matching orders, and new market operations to manipulate the state of the market.
- FIX application plugins - Customise the FIX protocol spoken by the server.