Featured post

Fixed Income Trading: New venues

A simple question came up recently in a conversation – how many new Fixed Income trading venues are there?  I could not think of anywhere th...

Saturday, 18 April 2015

Solace Systems & Node.js Market Data Terminal

We have looked at market data terminals and middleware.  One of the challenges of building a modern web browser based application is that there is a requirement to push JavaScript to the client to provide an interactive user experience and almost always a requirement to serve up real-time streaming data.

One way to handle this is to use a platform such as node.js with modules such as socket.io and express to push data to the client.  While that works, it means that real-time data has to pass around a considerable number of hops within a real-time streaming platform.  Using a Solace Systems appliance is one way to break out of that architectural limitation. 

The implementation I have used for "FinancialServerSolace" uses node.js, express, socket.io, primus and solclient.
The main pages are served up by node/express and within those pages subscriptions are made to a Solace Systems appliance.  This is an implementation of cross-origin-resource-sharing which allows a segregation of purpose - pushing pages can be handled by node/express and pushing streaming real-time data by Solace Systems.
This is a "work-in-progress" and I will be updating it over time.  One thing I will do is encapsulate the Solace Systems username, password, VPNname and URL within JSON and send that from node/express to the JavaScript client.  This will then be used to initiate the connection to the Solace appliance.

All the code for this is available from github at FinancialServerSolace.  If you want to run this code you will need to get in touch with Solace Systems and request assistance to get a partition on a Topic Routing appliance.
For further reading:

No comments:

Post a Comment