Microsecond Latency Rules Engine with RoaringBitmap

Implementing a rules engine can shorten development time and remove a lot of tedious if statements from your business logic. Unfortunately they are almost always slow and often bloated. Simple rules engines can be implemented by assigning integer salience to each line in a truth table, with rule resolution treated as an iterative intersection of … Continue reading Microsecond Latency Rules Engine with RoaringBitmap

Publishing Dropwizard Metrics to Kafka

This post is about combining Dropwizard metrics with Kafka to create self instrumenting applications producing durable streams of application metrics, which can be processed (and re-processed) in many ways. The solution is appealing because Kafka is increasingly popular, and therefore likely to be available infrastructure, and Dropwizard metrics likewise, being leveraged by many open source … Continue reading Publishing Dropwizard Metrics to Kafka

A first look at Apache Arrow

Apache Arrow is a standardised format and runtime library for in-memory columnar data storage. The library supports shared memory management across processes, with interoperable implementations for several languages. I expect that open source language agnostic shared memory will be a popular addition to the Apache ecosystem within financial services where several languages are often used … Continue reading A first look at Apache Arrow