The Baymarkets team has an exceptionally good understanding of OTC markets, and has the best development team I have ever worked with
Richard Baker, Cleartrade Exchange
Technology
The EDGE Server
The Baymarkets EDGE server software is written in Java, using Spring and Guice for wiring of logic, Hibernate for object-relational mapping (ORM) and Terracotta for distribution over several clustered nodes. For persistent storage we use any Hibernate-compliant database, for example MySQL.
Our solution is highly scalable meaning that the system grows seamlessly with the number of users by simply increasing the number of servers used in the cluster. There is the option to run the EDGE server software either on a single server or on several servers, for hot failover, high uptime, and redundancy.
The system is typically deployed on Linux servers, but we have Windows server installations as well.
The EDGE server has an open API, based on the Financial Information eXchange (FIX) protocol. This enables our partners to rapidly integrate with the system in the cases where such integration is needed.
The EDGE server software is designed to meet the needs of demanding financial institutions and can be easily configured in multiple ways. There is a division between the EDGE platform, which consists of common components, and the EDGE extensions, which contains customizations for each client.
The EDGE Client
The Baymarkets EDGE client is also implemented in Java and is zero-configurable, which means that it is automatically distributed and new client versions are instantly available for the users, without the need for them to take any action themselves. The zero-configurability is realized using Java Webstart and the only requirement on the client systems is that they have Java version 1.5 or higher installed.
For clients who have a policy of not running standalone applications, the EDGE client can also be run as an applet in a browser. All communication uses HTTPS over the standard port which has the advantage that there is no firewall configuration involved in order for the EDGE client to work.
Development Process
Our development team works according to Scrum and Agile principles which means that we develop software in iterations (called sprints) with working releases as the output of each sprint. We are thus highly adaptive to customer requirements and are able to deliver new functionality quickly. Another important aspect is the high visibility of the methodology, namely that the customer has access to a product backlog showing in which order features will be implemented and in which release they can be expected.
We leverage on the latest standard technology and adaptive techniques in software development. More specifically, we do not reinvent the wheel, but often utilize stable and ubiquitous software components available in the public domain.
QA and Testing
Our development process uses state-of-the-art tools and techniques, including:
- Jira and Greenhopper for project management and issue tracking.
- Maven, Nexus, TeamCity, and Sonar for building, library management, continuous integration, and code analysis.
- Git for version control.
- Junit/Mockito, Jprofiler, Jmeter for unit testing, profiling, and performance testing.
For integration, system, and regression testing we have an extensive collaboration with EPAM.
We have automated many elements of the documentation process, in order to ensure complete up-to-date documentation. This is enabled using tools such as Javadoc, Jira/Git, and XML annotations.
Integration
The EDGE connection API is based on the open standard FIX protocol version 4.4. This facilitates easy integration for sending and retrieving data from any EDGE server installation. The API uses text messages transmitted over TCP and is therefore agnostic to operating system and network protocol used.
Edge is integrated to and certified for the following systems:
- CME ClearPort API v. 2.0
- CME ClearPort API v. 1.1
- LCH.C (FIX 4.4)
- WhenTech Markets (FIX 4.4)
- OMX Secur (binary)
- Trigonal recap system (FIX 4.4)
- many others
Security
Edge is designed for security with user levels having different access rights. All traffic is encrypted using SSL and passwords are only retained in hashed form. Furthermore, there is the option to add two-factor authentication using a separate device which generates a one-time password (OTP) for each login.
Since EDGE is network protocol agnostic, it can run over any VPN or leased line technology, e.g., BT Radianz.
On the server side, load balancers and firewalls control and restrict access to back-end components.
Hosting
Edge servers can either be locally deployed at the premises of our customers or we can host the system for our clients at our hosting partner, Basefarm.