Add a filesystem based persistent events store

This event store is currently very simplistic, and it is only safe to
use from a single node (not multi-master safe) at a time.  It relies on
java synchronized methods for synchronization which only works within
the same process.

The file system layout of this store is fairly simple, it uses
individual files to store the uuid, head, tail, and each event.  The
events are sharded in an extensible way that can scale to the full size
of a java long, with at most 1000 entries per directory.  It is
envisioned that a similar layout will eventually be used with additional
directories for transactions in a multi-master safe way.

Change-Id: I73e3a74ddce10ebf956e473d4bce7119c42d79a7
9 files changed
tree: 90014c6e19886063749221ad6ddb9b74ec8232b8
  1. src/
  2. test/
  3. .gitignore
  4. pom.xml