Committed is a distributed commit log designed to store data long term in a log structure. Instead of the typical implementation where you are given simple read and write primitives and have to build, use adddons, or 3rd party software to aid in your read activites, Committed's two primitives are write and sync. The sync primitive is designed to move your data somewhere else. The purpose of this is to make it easy to transform or multiplex streams of data in a value added manner, or to move data into a system that has efficient querying (like a traditional SQL or NoSQL database). Committed even works with ephemeral data storage because it provides an efficient way to recreate the ephemeral storage if it fails (think Redis).
Another way to think of Committed is as a serious system for creating distributed Command Query Responsibility Segregation (CQRS) systems. In this case Committed would work as the Command database and provide powerful semantics for replicating transformed data into Query systems.
A final way to think of Committed is as a functional database with powerful data stream transformation capabilities.
Committed is specifically NOT a databse designed for querying.
The MVP will be delivered by April 30th.
It will include:
Backend
- A solid SQL syncable including a DSL for describing it
- A generic method for adding a transform to a syncable
- Permanent Storage of data
UI
- View topics
- View syncables
API
- Add a new topic
- Add a new SQL syncable to a topic
- Post to a topic