Problem Solved Series #3.
I’ve recently been helping a client with their single dealer platform phase 1 delivery of corporate, sovereign and municipal fixed income products. The first requirement was to deliver fixed income market data to a Caplin Trader application through integration with the bank’s inventory and pricing systems; this short post explains the design of that integration piece.
Caplin employs a plug-in integration architecture for adding external feeds, and provides many off-the-shelf adaptors and an easy-to-use toolkit to build new ones. For this engagement I used the Caplin DataSource toolkit to demonstrate construction of a custom adapter.
The adapter design comprises two layers: a bank-facing service layer integrating with pricing systems to generate business objects, and a Caplin-facing translation layer to generate financial-domain messages optimised for internet streaming.
The server layer serves two main purposes; to retrieve static product information (such as ISIN, maturity and coupon) and consume real-time feed information (such as prices, yields and spreads) using the bank’s in-house topic-based publish-subscribe API. The service aggregates the data into business objects, implemented as plain old Java objects.
Finally the Caplin DataSource API is used to translate business objects into Caplin financial domain data structures, which benefit from a compact encapsulation for low-latency internet distribution.
The result was a prototype single-dealer platform providing real-time bond pricing and product information. Inherent Caplin Xaqua functionality also provides intraday bond price time-series, tick caches and instrument discovery workflows – searching for bonds by rating, coupon and yield. Best of all it took less than a morning to build and walk through with the client, so all the more time for lunch…