Skip to content
Lightweight ultra-fast library to store data in bi-temporal format
Branch: master
Clone or download


License: MIT Build Status Maven Central

A lightweiht easy to use Java library to store the history of changes of domain objects in bi-temporal format.

BarbelHisto tracks two time dimensions for you: record time is when a change to a domain object was recorded in the system (created and inactivated) and effective time is when this change is opposed to become effective or valid from a business viewpoint.

The library implements Martin Fowlers Temporal Pattern that can be found here:


  • bi-temporal (auditing-proof) data storage based on blazing fast cqengine collections
  • small easy-to-use API (as simple as bi-temporal data storage can get)
  • backed by transactional, high performance collections
  • works out of the box with default implementation and configuration
  • manage different time zones of client and server
  • persistence support for heap, off-heap, disk storage and custom data stores
  • provides basic functionality, extendible for individual needs
  • remember every change to the data, nothing is ever going to be deleted
  • build-in thread safety by minimizing mutability and object locking
  • pretty print function to learn about bitemporal data storage

Get a version of BarbelHisto

Get a version on Maven Central.

Download the actual snapshot releases.

Or clone this git repository to try some of the features of BarbelHisto.

Getting started with POJOs

Get started turorial on

Memory analysis

Memory analysis results. One hour run, 5000 Objects saved every 10 seconds. OnHeapPersistence.
Result details here. Memory

You can’t perform that action at this time.