Symphony Desktop Working Group – Moving on from Minuet

April 10, 2017

As many of you will know, Symphony can run either in a browser or in a desktop client made up of the HTML5 Symphony application and the Minuet HTML5 desktop container.

The Desktop Working Group was formed to both manage the development of Minuet and to deliver a standard interface which the Symphony HTML5 app would adhere to. This standard interface will allow Symphony to work in other containers such as those in use at some of Symphony’s clients or those that are available commercially.

One of the key ways that the community can influence the direction of a product is by committing code—but due to some complexities, the release of the Minuet code was delayed until this year.

What’s happening now?

The Symphony team is looking at Electron as a potential replacement for Minuet as it is more actively developed and more up to date with respect to its integration with Chromium. This has given the WG a great opportunity to review the de facto API that sits between the Symphony HTML5 app and the container.

But, isn’t that just a bunch of W3C defined interfaces?

Not quite – in some places it is and in some places it isn’t. Symphony has richer notifications, for instance, so we need to consider how we work with the W3C notification API. Symphony also requires capabilities, such as screenshots, which are not a standard.

We also need to decide how the HTML5 app itself will be packaged and deployed, and if any of the pre-existing vendor approaches are a good fit for that as well.

Finally, once we have strong agreement on the concrete API and the package, we will also be looking at how Symphony interacts with other applications on the desktop. Minuet has a client-side WebSocket interface that allows other desktop applications to send messages into the Symphony desktop application, enabling customization of the GUI and callbacks from buttons—which is great, but is it the way we want those capabilities to be exposed in the long term?

The likelihood is that Minuet will be deprecated at some point and not be a target container any more – unless, of course, someone implements the API we are defining!

The team from the WG on this includes JavaScript gurus from several financial services institutions, vendors and consultancies, as well as engineers from Symphony who will help make sure what we do will be implementable. This project is a great evolution for the WG, showing how we should engage and, that by writing code rather than talking, we can make more happen.

Without a doubt, this is the best engagement (and the most fun) we have had in the WG so far, and once we have this project completed, we are looking forward to being able to contribute more to the various parts of Symphony that are open sourced. 

-James Turck, Global Markets Architecture and Innovation at Credit Suisse