It has been some months since I wrote about Microservices and the Amazon Cloud and as we have recently released a major new version, I wanted to elaborate further on the importance of this technology.
Background
Microservices are fine-grained services that can be used to rapidly assemble a more complex service, a system, or a user interface.
Unlike libraries and toolkits, Microservices do not require the use of a specific programming language and they do not need to be installed, managed and upgraded by a customer, making them eminently suited to agile deployment.
Microservices are available individually and offer the potential of a “pay for what you use model”, a disruptive improvement on enterprise applications which require a complete system to be purchased, implemented and integrated before a single function or report can be used.
Microservices deployed on massive scale clouds such as AWS, offer the possibility of running high-end computational tasks at prices that are within reach of many more customers and not only those customers with IT budgets running into the hundreds of millions of dollars.
Clarus Microservices
We have now greatly expanded the functionality offered in Clarus Microservices to add portfolio level risk analytics, margin requirements and capital calculations for Derivative portfolios.
Clarus Microservices are so simple to use that we offer free 14-day trials to prospective customers.
And within this 14-day period, our customers integrate these services with real world data and are ready for full production roll-out.
Contrast this with our enterprise software competitors, who reluctantly offer proof of concepts (often charged for) and invariably not with real data but still resource and time heavy. Should these then proceed to purchase, they require the marshalling of a small army of expensive consultants to start from scratch and implement a system and many months or years down the road this system lands on a users desk, ….. you get the picture.
Our proposition is very different.
Clarus Microservices can be assembled by anyone using their own choice of programming language (e.g. python, perl, r, java, c#, …) to build complex systems.
We believe that this offers a better paradigm for the software infrastructure of the future.
A future that was promised by object orientated libraries but failed to be realised because of the reliance on a specific programming language, the requirement to integrate data at great cost and the need to manage deployment, scale and reliability yourself.
Clarus Microservices are managed, deployed and scaled by us on AWS, freeing up users to concentrate only on assembly and utilisation.
Lets look at a few examples, using python to illustrate the simplicity.
Example One – ISDA SIMM
Determine the change in SIMM margin of my portfolio resulting from a what if trade.
myCRIF = open('MyPortfolioCRIF.txt').read()
print (clarus.simm.margin(portfolios=myCRIF,whatif='$100m 10Y pay 2.0%'))
Two lines that will return the before and after margin.
SIMM Account WhatIf Change Margin Margin 88,479,261 4,008,499 1,390,384 89,869,644
Example Two – FRTB SA, IMA, MRF
Calculate the capital requirement using the Standard Approach for a JPY Swap trade.
clarus.frtb.sa(portfolios='JYSW5 6000M Rec 0.1%',reportCcy='JPY')
And the same trade, but an Internal Model Approach.
clarus.frtb.ima(portfolios='JYSW5 6000M Rec 0.1%',reportCcy='JPY')
Next which points on the JPY Swap Curve are modellable and which are non-modellable.
clarus.frtb.modellablerf(riskFactors='JPY LIBOR 6M')
(In the interest of space, I have chosen to not show the output of these microservices).
Example Three – MVA
Calculate the Margin Value Adjustment of an LCH Cleared Swap.
clarus.xva.mva(portfolios='EUR 100m 5Y rec 0.215%',model='LCH', units='bp')
A complex analytic requiring many thousands of mtm calculations, yet returning results sub-second.
MVA in bp 0.40
Example Four – Hedge
Get the swap equivalent hedges for a portfolio.
clarus.hedge.equivalents(portfolios='cft/1H',ladder='Major')
Returning:
SwapEquivalents in USD (MM) USD.Semiv3 02Y 7,389 05Y 4,907 10Y -4,434 30Y -600 Total 7,262
Example Five – Compliance
Check whether specific USD Swaps are mandatory to trade on a Swap Execution Facility.
clarus.compliance.sefmandatory(trade='USSW11,USSW12')
Returning:
Ticker SEF Mandatory USSW11 FALSE USSW12 TRUE
Example Six – ADV
Find out how today’s trade volume compares with the average daily volume (ADV).
clarus.sdr.volumeadv(ticker='EUBS10')
Showing for this EUR-USD Cross Currency Swap:
Ticker Volume ADV EUBS10 495,575,474 352,036,717
I could go on, by lets end there.
Please see the Clarus Microservices Reference Page for more examples.
Invitation to Try
There is a lot of chatter in Tech circles about “beautiful APIs”.
I had not appreciated what this meant.
After using Clarus Microservices, I understand the beauty in an API.
Intuitive to write, yet powerful in scope.
After years of not keeping up with programming, syntax, installations.
Using Clarus Microservices is a joy.
As I can focus on getting what I need to get done.
Even the examples for this blog are all my own creation. 🙂
What could be easier.
I invite you to try Clarus Microservices yourself.
Or forward this blog to a colleague to try.
Begin the journey.