We are developing solutions for the OTC Clearing market place that will lead to reductions in cost, complexity and operational inefficiencies for market participants.
MyCCP has a three tier architecture.
The front-end is a Desktop Application written in .Net WPF and C#. It is designed to work on Windows Desktop machines.
The middle-tier is portable across Windows, Linux and Mac OSX and is built using the OpenSource .Net Core stack. This layer is written in C#. The front-end and the middle-tier communicate using grpc. The middle tier manages most of the transactional data such as trades and market data, and uses an SQL database to store data. Middle-tier services are stateless - i.e. there is no concept of a stateful session. Each request from the front-end is an independent request. This makes it easy to load balance requests across multiple middle-tier servers.
The backend is written in C++. The backend consists of Risk Engines that are responsible for all the major computations. Additionally one of the backend servers hosts the Limit Checker which use a local RocksDB datastore for persistence. Only one instance of the Limit Checker can be active at any time due to the nature of the data it holds. All other risk engines are stateless computation engines that simply process requests that come from the middle tier. The communication between middle tier and the backend tier is over TCP/IP and uses protocol buffers. The backend tier uses libuv as its networking layer. As the risk engines are stateless any number of these can be deployed.
The following diagram shows the high level architecture of the system.