Caplin Platform 6
The Caplin Platform is an integrated suite of software that supports the services and distribution capabilities needed for web trading. Its low-latency streaming capabilities, coupled with real-time data transformation, SSO user authentication and the ability to integrate with a variety of data sources, make it the most adaptable and efficient data distribution solution for your web trading application.
Web streaming allows you to send data from the server to a web browser asynchronously, and with low latency. There was no proper support for this capability in the early web; adding it makes full duplex client-server communication possible.
The Caplin Platform enables you to push data to and from your client application, and between server components. To ensure low-latency – a critical factor in trading platforms – data transfer is kept to a minimum. The Caplin Platform is regularly benchmarked to ensure that its message latency is as low as possible.
Throttling and Batching
The Caplin Platform can handle very high data rates. If your client application subscribes to a lot of data, or the data rate is just very high, for optimal performance, you can tweak the Platform configuration to conflate the updates, or batch the messages.
Connect and Normalize
The Caplin Platform can be integrated with any number of existing systems, such as pricing, trading and permissioning systems. The Platform can act as a normalization layer, presenting a more common interface to a number of disparate systems.
A web trading app using the Caplin Platform can use Caplin KeyMaster to integrate easily with a Single Sign-On (SSO) system. The end-users of your web application can then be logged in to Liberator seamlessly, without having to enter any further user credentials.
You can monitor the Caplin Platform components and Integration Adapters (including custom Adapters built using the Caplin Integration Suite). The internal state of each component and adapter can be viewed via a JMX interface, using the Caplin Management Console or custom monitoring tools created with the JMX API.
The Caplin Platform handles subscriptions in an active manner, passing subscriptions through the chain of components. This allows requests to be handled dynamically, and reduces the amount of data to be handled by the platform and the load on it.
The Caplin Platform, and any connected Integration Adapters, can be deployed with multiple instances of any of the components, to enable server failover. The Platform can be configured so that subscriptions are balanced across several Integration Adapters, with priorities assigned to different Adapters. Subscriptions can failover to a backup Platform component if the default component fails.
Client applications built using StreamLink will automatically failover between instances of Liberator. When a StreamLink client application fails to connect to Liberator, it attempts to reconnect. If that fails, StreamLink attempts to connect to a failover Liberator instance.
You can use the Caplin Platform to provide services to a client application. These may be core services provided by the Platform, additional services implemented by Caplin, or custom services you have built to run in the Platform. The filtering and sorting of list data is one such service, and is implemented as a Transformer module.
Lists, filtering and sorting
The Caplin Platform and Caplin APIs provide easy and efficient ways to manage and display lists of data. Such lists are known as Containers. Containers can be filtered and sorted on demand by the Platform.
A comprehensive permissioning facility is built in to the Caplin Platform and its APIs. This allows you to authorize via Liberator, user logins, data subscriptions and publishing data. Permissions can be derived from an external system, such as a user permissions database.
What does the Caplin Platform contain?
The Caplin Platform is a suite of server applications and auxiliary components that can be used to distribute streaming data (typically financial data, but not restricted to this), and manage trades. The Caplin Platform manages client sessions, whether connected from web trading apps or from installed applications, and provides them with real-time access to pricing and trading systems.
The following diagram shows where the Caplin Platform fits into a typical web trading stack.
The Platform includes two main server applications, Caplin Liberator and Caplin Transformer.
Caplin Liberator is a financial Internet hub that delivers data and messages in real time to and from subscribers over any network. Caplin Transformer is an event-driven, real-time data transformation engine optimized for web trading services. The services are typically implemented in Transformer modules, but Liberator also provides built in services and modules for permissioning and monitoring. Both Liberator and Transformer are designed to perform and scale to meet the needs of large web trading platforms.
Liberator and Transformer are typically connected to Integration Adapters that allow the Platform to access external systems and services. You develop an Integration Adapter using the Caplin Integration Suite.
Caplin Platform Architecture
A web trading platform built using Caplin’s software and tools consists of a number of components.
The following diagram shows the full software stack in a typical deployment, including the APIs from the Caplin Integration Suite used to build the Integration Adapters. Note that a production deployment would have multiple instances of many of the components, to provide scalability and fault tolerance.
Caplin Platform Deployment Framework
Once you have developed Caplin Platform components and Integration Adapters using the Caplin Integration Suite, you can deploy them independently of each other and in a way that fits in with your existing conventions and policies. However, you can also use the Caplin Platform Deployment Framework, which makes the deployment process easy and flexible.
The Deployment Framework is a directory structure, into which you can deploy both applications and configuration. It provides a highly convenient way to deploy new functionality across multiple machines. The framework uses the concept of a Caplin Platform blade, which is a package containing an application and the configuration required for it to run on the Caplin Platform.
For example, an Integration Adapter could be packaged together with its own configuration and any configuration changes needed for Liberator and Transformer to support the Adapter. This Platform blade would then be deployed on each Liberator and Transformer machine, as well as the machine the Integration Adapter runs on. The following diagram shows how blades deploy into a typical setup.