“The More You Say, the Less People Remember…

…The Fewer the Words, the Greater the Profit.” These wise words were written by François Fénelon, a writer and theologian living during the 17th century. This is an article summarising different approaches to the development of IT solutions. Learn why the above quote is very relevant for developers in the 21st century.   Business-driven development…

Read More

How Does Kafka Perform When You Need Low Latency?

Most Kafka benchmarks appear to test high throughput but not low latency. Kafka was traditionally used for high throughput rather than latency-sensitive messaging, but it does have a low-latency configuration. (Mostly setting linger.ms=0 and reducing buffer sizes). In this configuration, you can get below 1-millisecond latency a good percentage of the time for modest throughputs.…

Read More

Cloud-Native Chronicle Deployment

Traditionally, companies with low-latency requirements deployed to bare metal servers, eschewing the convenience and programmability of virtualisation and containerisation in an effort to squeeze maximum performance and minimal latency from “on-premises” (often co-located) hardware.   More recently, these companies are increasingly moving to public and private “cloud” environments, either for satellite services around their tuned…

Read More

How to Reduce Cloud Cost by 99% for EDA Kafka Applications

While the cloud offers great convenience and flexibility, the operational cost for applications deployed in the cloud can sometimes be significant. This article shows a way to substantially reduce operating costs in latency-sensitive Event-Driven Architecture (EDA) Java applications by migrating from Kafka to Chronicle Queue open-source, a more resource-efficient and lower-latency queue implementation. What is…

Read More

How to Leverage Method Chaining to Add Smart Message Routing

This article explores how to use method chaining to add routing information to serialised data structures in a lightweight fashion, where the routing information can be read separately by an intelligent message router.   We are going to use the open-source serialisation library Chronicle Wire. Let’s assume we have some data that we want to…

Read More

Introducing the Multifunctional FIX Router of Chronicle FIX

A Load Balancer, FIX Version Translator, and Rule-based Drop Copy FIX (Financial Information eXchange) protocol was developed to provide a reliable and high-speed exchange of transaction information between trading parties. In a typical scenario, there are point-to-point connections between clients and servers, ie a firm may run one or more FIX servers and multiple counterparties…

Read More

Challenges when Developing a GUI for FIX

This article explores the Challenges in developing a Graphical User Interface (GUI) for Financial Information eXchange (FIX) data. FIX is both a protocol and a message format, but to create a FIX GUI we will focus just on the message format. A FIX message is a standard message format for transmitting financial and investment banking…

Read More

Automated CI/CD of Multiple Projects Using TeamCity’s Kotlin DSL

In a previous article I described a way to organise low-latency products as multiple code bases which are bound together with a Maven Bill of Materials (BOM). Understandably, this requires setting up continuous integration and deployment for a large number of similar projects. Maintaining such setup manually in the face of change while ensuring its…

Read More

Why the Cool Kids Use Event Loops

A Discussion On the Benefits of Event Loops in Java. When I was working in software development back in the 1990s, nearly all the software libraries that I worked on made use of event loops. This was because at the time most hardware had just one single CPU.  Back in the day, I remember the…

Read More

How to Develop Event-Driven Architectures

Last month, I wrote an article on Open source Chronicle Wire, that discusses how we could serialise an application’s state into different message formats.   Now in this article, I’m going to look at how we can use Open source Chronicle Queue and Chronicle Wire  to structure applications to use Event-Driven Architecture (EDA). EDA is…

Read More