Introduction
WooriDB is a general purpose (EXPERIMENTAL) time serial database, which means it contains all entity registries indexed by DateTime and Uuid
. It is schemaless, deep key-value storage and uses its own query syntax that is similar to SparQL and Crux's Datalog.
Name origin
Woori
means our
, in Korean, and although I developed this DB initially alone, it is in my culture and my hunsband's culture to call everything that is done for our communities and by our communities ours. I chose Woori instead of shelanu or bizdin because it easier to pronunce.
Project inspirations
- Crux a general purpose bitemporal graph query database with support for SQL and Datalog. It was the ideallogical source of WooriDB. I had developed a rust client called Transistor which gave me the basic concepts of what I wanted WooriDB to have.
- Datomic is a transactional database with a flexible data model, temporality and rich queries. I worked with Datomic at Nubank and it is the reason I found Juxt/Crux.
- Prometheus An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.
- SparQL SPARQL is a query language for RDF graph databases, it is flexible enough for query information based on datetime indexes.
- Book Database Internals
- Book Database System Concept
- Book Designing Data Intensive Application
- Professor Andy Pavlo Database Design Course.
- Zero Trust in Time Series Data?
Naming conventions:
- Entity Tree is similar to a SQL table, it is the data structure that contains all ids and entities map relations.
- Entity ID is the id of an entity inside of an Entity Tree.
- Entity map is the content of and entity associated with the entity id.