Inside Symphony

Symphony is a Goldman Sachs-led industry initiative to build a cloud-based, compliant platform for instant communication and content sharing that connects market participants securely.

Tailored to the needs of the finance industry, it will let companies bring all digital communications onto a single platform, allowing for more robust interactions between employees and clients. The platform is based around an open source business model that is cost-effective, extensible and customizable to suit end-user needs. This article provides a technical overview of the Goldman Sachs codebase that serves as the foundation for Symphony. 

Effective messaging is essential to the business of financial organizations like Goldman Sachs, allowing the sell- and buy-sides to communicate ideas and share analysis, disseminate pricing or request quotes, and facilitate pre- and post-trade workflows. Messaging also allows for real time collaboration within the firm that enables us to adapt to situations quickly and efficiently. Yet despite a broad array of transformative technical advances within the industry, most available messaging solutions have little or no interoperability, provide inadequate data security and support for compliance requirements, and require complex costly software installs. Even today, the many business lines within a financial institution can easily be working in walled-off information silos, dependent on messaging and collaboration tools that lock down information, slow the exchange of knowledge and discovery, and limit the effectiveness of the company’s overall service to its clients.

To a large degree, this situation is the result of the special conditions and regulatory requirements of the financial industry. We routinely handle highly confidential client information, which we must not only protect from improper outside access, but also segregate across various internal functions. At the same time, regulators require an unaltered, auditable and retrievable record of all information flows with demonstrable, proven controls and surveillance. Given the absence of third-party solutions that met our requirements, we decided two years ago to build our own platform, initially named LiveCurrent.

Our goal was to create a more open form of communication that, by promoting public knowledge generation and curation, would lead to a more informed and connected employee base, while controlling the exchange of open information to protect client information and abide by regulatory requirements. More specifically, we set out to build an extensible platform targeted to the unique workflow needs of the financial services industry, capable of supporting the high velocity of information exchange required for both unstructured and structured data, as well as human communication.

Highly available distributed systems are complicated to get right. Given our existing preference for open source, it made sense to build the core infrastructure using open source software already deployed by other companies on their high volume websites. This way, our development efforts could focus on higher value areas specific to the financial industry. We selected Apache Kafka, Apache Solr, MongoDB and HBase due to their superior distributed nature, performance, reliability, and ability to scale to the volume of data generated by the expected workload. We built out the ReSTFUL web services layer in a stateless manner using Apache Tomcat, meaning capacity could be added linearly, by simply adding more boxes behind the load balancer.

From day one, the client front end was conceived as a web client that could be delivered on any device, any operating system, anywhere in the world. To build it, we chose HTML5/CSS3, with JQuery, Backbone and Handlebars doing the bulk of the heavy lifting. Symphony's front-end web application uses the modular pattern made popular in CommonJS, which builds each component as a loosely coupled anonymous closure. The core of the JavaScript app handles request transport details, new message notifications and updates, configuration of the UI layout, and much more. These functions are abstracted behind a public sandbox and selectively bundled into modules when the components are loaded. This architecture helps Symphony add new components quickly and seamlessly because they are isolated from each other, and lets developers control exactly how much of the app needs to load—an architecture specifically designed for integration and customization.

It was in the development process itself that the Goldman Sachs team really broke the mold of large enterprise companies. By focusing on delivering code directly into production in rapid cycles, we minimized the amount of change in the system at any one time, while maximizing our ability to try out new features and adapt them based on immediate user feedback. Expanding our development team to include representation from information security and compliance allowed us to deliver the product to end users quickly, while maintaining the levels of security and quality we required.

With our internally developed open source code base at its core, the public version of LiveCurrent, now called Symphony, will be the first of its kind on the Street, with basic platform code available under the Apache 2.0 license, and hosted on GitHub. From the beginning, our aim was always to allow the software to be refined, improved, and extended by our colleagues within the industry as well as other developers interested in the platform.

While Symphony was initially built to leverage the firm’s advanced cloud computing infrastructure, it will deploy the web services of two leading cloud-platform providers outside of Goldman Sachs. Both providers will give Symphony multi-region redundancy as well as excellent hardware and network performance, and while their current offerings are excellent, both have been actively working with us and Symphony to meet the unique security requirements of the finance industry. Selecting two providers also provides the commercial product with vendor risk management, while using two such robust providers will likely yield a steady reduction in basic operating costs.

Finally, our platform contains a set of open ReSTFUL APIs that support integration into the workflow of any end user and can be extended to allow other businesses to provide plugins for video chatting, VoIP or other functionality. This allows for competition in those spaces and drives down client costs, while allowing innovative businesses to capture a large client base quickly.

With more than 20,000 Goldman Sachs employees using our platform in-house, exchanging millions of messages each week, we have already seen how integrated communications can help a large organization make better, faster decisions. We believe Symphony has a similar potential to create a new operating system for our industry, characterized by improved transparency, greater efficiency, unparalleled collaboration and enhanced data security, with an open-source code base to allow maximum extensibility and customization.

In an effort to further develop and evolve the platform, Goldman Sachs built a consortium of the world’s leading financial services firms and acquired Perzo, a Palo Alto startup led by David Gurle, an expert in encryption and security, to form Symphony Communication Services Holdings LLC. With Gurle as the new company’s CEO, Symphony will be made available to a broader base of corporate and individual users in 2015 and the platform’s key components will be open-sourced and made available to the general public through the Symphony Foundation.