Introduction

I need your help with this site

Since I posted about this project on Reddit, I’ve been having trouble with writer’s block.

It was much easier just teaching my friend directly about database concepts with example code. He would ask good questions and I had a clear path forward to helping him understand. Trying to write for a general audience is much more challenging, because I’m never sure which questions to answer.

To help me fill in the gaps, I’d appreciate it if you could make suggestions for improving this content or ask me questions that I can write about here after answering.

To ask questions or join discussions, consider joining the community:

Features and structure for our database system

We’ll be building a database system, layer-by-layer, starting with a key-value store. Keep in mind that a key-value store isn’t the end goal of this project. It’s just one component that we can build more complex behavior onto.

Here’s a list of the components and features I have in mind that we can build:

  • Key-value (KV) store, also known as a document store and commonly associated with NoSQL
  • Indexing and a query engine using JavaScript as the query language
  • Transactions, consistency guarantees, and crash recovery
  • Client library and API (Probably HTTP(S))
  • Relational tables and columns; possibly SQL query support

I’ve made a diagram to show the important layers, with the key-value store being the foundation we create to build on.

Important Layers 1