Traditionally, low latency trading systems were developed as monolithic applications in low level languages such as C++. While these systems delivered the required performance, the development effort was extremely time consuming, and the complexity of the software made it difficult to adapt existing applications to changing market demands.
A solution to these problems is a low latency microservices framework developed using a programming language that provides both accessible code readability and, when concisely tuned, performance near to bare machine levels.
Introduction to Chronicle Services
The Chronicle Microservices Framework is a Java microservices platform with particular emphasis on low latency and maximum performance. Systems built with Chronicle software are typically deployed into latency-sensitive environments where an event response is ideally generated within 30 microseconds, with 99% of responses generated within 100 microseconds.
Companies large and small in a wide range of industries employ open source Chronicle software to improve the performance of their applications and lower application latency. Examples of these industries include Financial Markets, Artificial Intelligence, Logistics, Gaming, Manufacturing, Payments and IOT amongst others. However, with most of the top 100 global banks using Chronicle to develop low latency trading systems this remains our principal focus.
Meeting these requirements of high performance combined with very low latency requires careful attention to all aspects of coding and architecture. Chronicle’s software is highly optimized Java, employing techniques that minimize operating system overhead and Java Garbage Collection (the objective is zero GC). The services are single-threaded, eliminating the need for thread management, locks, signals, polls of thread state, etc. This produces a deterministic and reproducible result (critical for replicating and debugging problems), while also increasing throughput and decreasing latency.
The model for Chronicle microservice design is Lambda Architecture:
The microservice function receives events from a source of data that contains the complete history of all events and operates in an append-only manner. The microservice reacts to the events, processes the input data, and generates output data. In many cases, the function is stateless: all required information is derived from the input events. However, in some cases efficiency is gained by maintaining some state between transactions. High performance and low latency are the objectives that determine whether a particular Chronicle service maintains some state or is stateless. If state is maintained, it can be persisted to reduce start-up time the next time the service is launched.
A low latency microservices approach also provides greater flexibility than the monolithic approach when the need arises to adapt operational systems to new circumstances.
Want to learn more? See the benefits of Chronicle's products in action
At Chronicle, we believe less is more. Learn more about why and how Chronicle can support your business and how it can increase efficiency and streamline your systems and workflows by speaking with one of our experts.
We can also offer you our release notes.