An experimental Event Sourcing database (cancelled)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

1.6 KiB

xeDB Release Log

In Development: v0.1.0 - "The baseline"

Summary

This initial version of xeDB is intended to be a minimal implementation of an Event Sourcing database, focused on write operations and consciously lacking sophisticated optimizations and caching.

Its purpose is to set a baseline for future incremental improvements and optimizations to compare against.

As such, it will lack a lot of features and optimizations that would be necessary for any non-experimental productive use.

Some expected limitations

  • Low read performance, due to the omission of a read cache and the interface only offering the ability to read an event stream in its entirety
  • Indexes will not be saved to disk but held in memory, resulting in a much simpler architecture but much lower start-up speed, especially for larger databases
  • No interface for database maintenance (deleting/redacting events or streams)
  • Only a very basic gRPC interface for the server, without authentication or encryption
  • Only the most basic tests will be included. There will for example be a lack of tests for high-volume and low-latency scenarios, as well as for larger databases. There also will be no fuzzing or property-based tests at this point.
  • While the write operations are intended to be ACID (atomic, consistent, isolated and durable), there are no tests for this at this point.
  • No backwards- or forwards-compatibility for databases at this point. This means a database created with a certain version of xeDB will only be able to be opened with that exact version of xeDB.