Scott Logic developed a flexible, extensible system to automate the processing of derivatives trades for a major asset manager.


Our client executed trades for different asset classes using several front-office systems. The business was interested in expanding the range of trades into derivatives such as FX, futures and swaps. A major obstacle to this expansion was the lack of back office automation: manual processes were used both for notification of external parties such as clearing houses and brokers, and for trade entry into accounting systems. We were engaged by our client to automate their back office trade processing.


  • C# 4.0
  • ASP.NET 4.0
  • WCF
  • SQL Server 2008
  • NHibernate
  • NUnit & Rhino Mocks


We designed the new system’s architecture to be extensible, so that it could easily accommodate additional sources and destinations, such as new front-office systems or external parties requiring notification.

Our design also allowed support for new trade types to be added largely through configuration, with a minimum of development effort. This was a major benefit to the business, as it made it possible to extend support to a large number of new trade types in a short period of time, which would otherwise have not been possible.


The system consisted of a set of WCF services hosted in IIS, which enabled the application to be distributed for scalability if required. Trade Readers polled for files output by the front office systems, converted them to a standard FIXML format and passed them to a processing service that stored them in a SQL Server database. When appropriate this processing service calculated positions.

Writer services polled the SQL Server database for new transactions and generated the appropriate output (including files to be read in by accounting systems, automatically printed reports, and emails to the back office and external third parties). We also developed an admin website hosted in IIS that allowed the client’s Tech Support team to monitor trade activity.

We designed the system so we could run it in a ‘mock’ mode that allow us to specify end-to-end test cases without affecting the client’s current environment in any way. This allowed us to mitigate any risks to the business when changes were made.