Monitoring Event Loops for Blockages
Chronicle’s open source Chronicle Threads library has a little known feature which is one of the first tools I get from my bag if a…
Monitoring Chronicle Services
Chronicle Services is a framework for building Event-driven microservices. Microservices built with Chronicle Services are efficient, easy to build, test, and maintain. Equally important…
Using Pausers in Event Loops
Typically in low-latency development, a trade-off must be made between minimising latency and avoiding excessive CPU utilisation. This article explores how Chronicle’s Pausers can…
Tuning Java Applications for Low Latency on Linux
Introduction I have lost count of the number of times I have been told that Java is not a suitable language in which to…
The Unix Philosophy for Low Latency
Unix has been around for more than 50 years, and the original design principles must be good enough for it (and its derivative, Linux)…
Comparing Approaches to Durability in Low Latency Messaging Queues
A significant feature of Chronicle Queue Enterprise is support for TCP replication across multiple servers to ensure high availability of application infrastructure. I have…
Automatically Creating Microservices Architecture Diagrams
In application development, microservices is an architectural style where larger applications are structured as a collection of smaller, independent, yet interconnected services. While this…
Chronicle FIX: Much More Than a Quick Fix
Many of our customers have upgraded from QuickFIX/J to Chronicle FIX and this article provides some background as to why. Introduction QuickFIX/J is free,…
Chronicle FIX: Designed Not To Skip A Message Even If Your Data Centre Fails
A high level of availability of IT services is crucial to prevent disruptions of service that can lead to financial losses, business opportunity losses,…
Chronicle Wire: Object Marshalling
At Chronicle, we know that efficient code doesn’t just run faster; if it’s using less compute-resource, it may also be cheaper to run. In…
How to Automatically Generate GitHub Release Notes From Resolved Issues
GitHub Issues are convenient since they come bundled with a GitHub repository. Many companies are exploring this tool as an alternative to full-featured issue…
Event-Driven Order Processing Program
Following the Hello World example of a simple, independently deployable real-time Event-Driven Microservice, this article looks at a more realistic example of an Order…
Efficient Memory Mapping for Terabyte Sparse Files in Java
On Linux, you can create sparse files, where only the pages (of 4 KiB) that are touched utilise either memory or disk space. This…
Exhaustive JUnit5 Testing with Combinations, Permutations and Products
Unit testing constitutes an integral part of the process of providing high-quality software. But, how can one write tests covering all variants of several…
Event Driven Hello World Program
Event-driven microservices can be straightforward to describe before they are implemented, tested and maintained. They are also highly responsive to new information in real…
Is There a Best OS to Develop a Java Application on?
One subject that often evokes a lot of debate is which is the best OS to develop a Java application on. This article gives…
How Behaviour Driven Development Works Well with Event Driven Architectures
Behaviour Driven Development (BDD) and Event Driven Architecture (EDA) work well together as they complement each other’s strengths and weaknesses. Using both can result…
Why Core-to-Core Latency Matters
Last year we had a global shortage of microchips; today, I feel there is a worldwide shortage of software developers. Like many other software…
“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…
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…