Best Practices Best practices for Event Sourcing David Schmitz presented an excellent talk on what he sees as best practices in using Event Sourcing. Chronicle Software has two very different event sourcing frameworks Chronicle Microservices Framework (CMF) and Chronicle Decentr
Java Some Java oddities I was recently asked for some simple pieces of code which some unusual uses of Java. Here are some of my favourites ;) Stateless Singleton implementing an interface public enum RandomStrategy implements IntSupplier { INSTANCE;
Network Reducing network latency A look down the rabbit hole of reducing network latency. How latency can be measured and what you can do about it in a Java application. Ping latency A tool I used regularly
String Looking at randomness and performance for hash codes In these articles, String.hashCode() is not even a little unique and Why do I this String.hashCode() is poor, I looked at how String.hashCode() might have been made better with little
Why do I think String.hashCode() is poor In response to an article I wrote HERE, a recent article HERE pointed out a number of things which could have been clearer in my claim that String.hashCode() is poor. What does
Blockchain Making blockchains simple One of the challenges of building blockchain solutions is testing it. Chronicle Accelerate has a framework to make adding custom transactions with the state using data-driven tests. i.e. without the need to
Consulting Publishing tens of millions of messages per second Welcome to our first newsletter from Chronicle giving you updates on developments at Chronicle Software plus tips and case studies around how Chronicle have helped clients to maximise value from their implementation. Case
String.hashCode() is not even a little unique Some have a misconception that a 32-bit hashCode() can be unique for even complex data. Many realise that String.hashCode() is not unique, but might not realise how bad it is. While it
Decentralised Keeping a blockchain decentralised This article proposes a Proof of IP (PoIP) to favour diversity of IP addresses over large number of server concentrated by IP address. While blockchain solutions using Proof of Work (PoW) and Proof
Low Latency Microsecond latency Microservice Benchmarked It is common for a vendor to publish benchmarks with synthetic loads and code. However, what can be reasonably achieve in a real application? In this post, I discuss what we achieve with
Downloads Chronicle downloads exceed 6 million in a month In the last three months we have seen a significant increase in downloads of our libraries. Wider adoption of our libraries into popular frameworks appears to be driving this growth in downloads. A
Blockchain High throughput Consensus When achieving consensus across a distributed network, the latency of that network is an important constraint. How can we increase throughput? How does Little’s law help? Time to consensus To achieve
Java Puzzles Here are some odd quiz questions in Java which might have interesting answers. Questions void arrays Which of the following doesn’t compile void[] voids = new void[1]; (1) Void[] voids = new
Block Chain When is using a Blockchain compelling I was recently asked, when is using a Blockchain really needed? IMHO the main benefit is ease of provider integration Blockchain allows providers to join a system, with a much lower barrier to
Blockchain Blockchain Design considerations After I announced the release of Chronicle Accelerate, a high throughput blockchain solution in Java. One of the questions which came up was; What were the design considerations that went into the solution,
Blockchain Blockchain basics The key difference between blockchain and traditional databases is the level of trust needed in those running the service. With blockchain you trust the protocol, not those running it. What does a blockchain
Pet Hates StringBuffer and how hard it is to get rid of legacy code In 2006, Java 5.0 was released with StringBuilder, a more light weight and sane version of StringBuffer. The Javadoc for Java 5.0 for StringBuffer notes As of release JDK 5, this
Low Latency Object Pools revisited Object pools were popular before Java 5.0 however more efficient allocation made most of these pools a needless complication. Can a Object Pool still make sense and how fast do they need
Encryption Can you have encryption and low latency in Java While using encryption is slower than writing raw messages, how much slower is it and does it have to be a performance problem? In this post, I look at Chronicle Queue, with and
Chronicle Queue Low latency encrypted messages with Chronicle Queue Enterprise Chronicle Queue Enterprise supports replication in a cluser and system monitoring. We recently added encrypted messages and the inital results are encouraging. What did we test? This test s similar to our previous
Chronicle Queue Improving percentile latencies in Chronicle Queue Compared to a year ago, we have significantly improved the throughput at which we can achieve the 99%ile (worst one in 100). What tools and tricks did we use to achieve that?
Chronicle Queue Chronicle Queue storing 1 TB in virtual memory on a 128 GB machine If you use a standard JVM like the Oracle JVM, or the OpenJDK, you might find that as the heap size grows the performance of your JVM can drop as GC pause time
Chronicle FIX Choosing Chronicle FIX Engine Overview The FIX Trading Community web site has posted a list of common questions about FIX Engines. This page brings together our answers for these questions. For more details on Chronicle FIX Capabilities/
Twitter IT experts you should follow on twitter When I read lists like this they always seem to be male dominated, so here is a list of experts I follow which isn’t. Dr Sue Black OBE UK Govt Advisor
Performance Why don't I get the throughput I benchmarked? In synthetic benchmarks, you can achieve a high throughput for your system by throwing lots of independant tasks/clients at it to see what the theoretical limit of your system is, however in