Blogs
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 Processor with a New Order Single in and an Execution Report out. A New Order Single is a standard message type for the order of one asset in the FIX protocol…
Read MoreEfficient 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 allows you to memory map large virtual regions without worrying about wasted memory or disk In this program, you can see it reserves 8 TiB (8,192 GiB) Figure 1. Test 1:…
Read MoreExhaustive 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 operations? Read this article and learn how to use JUnit5 in conjunction with combinations, permutations, and products. Test Support Libraries There are many libraries that make testing better in different aspects.…
Read MoreEvent 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 time, with latencies in Java of below 10 microseconds 99.99% of the time depending on the functionality of the small independently deployable microservice. In this introductory article, we use an…
Read MoreIs 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 my view on the issue. Java runs very well on Windows, macOS and Linux Distributions. I work for Chronicle Software, and much of our software is open-source Java libraries, so…
Read MoreHow 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 in a shorter time to market for new functionality and a more maintainable system. Behaviour Driven Development encourages a common language between users and developers in describing requirements in a form…
Read MoreWhich is the Fastest JVM?
How is a high-performance, low-latency Java application affected by the JVM version used? Every nanosecond counts for trading and other applications where messages between two different threads are exchanged in about 250 ns! Read this article and find out which JDK variant comes out at the top! Benchmarks This article will use open-source Chronicle Queue…
Read MoreWhy 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 companies, Chronicle Software is rapidly expanding and interviewing candidates. We usually ask candidates to demonstrate a good knowledge of core Java, then we cover slightly more advanced concepts, such as the…
Read More“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 MoreHow 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