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.