PumpkinDB

PumpkinDB is a low-level event sourcing database engine that is ACID-compliant. It is a database engine that could be used to build different types of event sourcing systems such as embedded and client-server ones. PumpkinDB is designed to be immutable, the reason behind this is that overwriting data could be unsafe, valuable history of data will be erased. As the cost of storage dropping, a more effective way of managing data is to enforcing immutability of key's value. And writing to the database is close to functional, such that writing side doesn't have to wait for shared resources, the read side will figure out the correct result. It use B-Tree instead of B+Tree. In order to have control over querying costs, it provides an embedded executable imperative language, PumpkinScript, which is a low-level untyped language inspired by [MUMPS](https://en.wikipedia.org/wiki/MUMPS). PumpkinDB doesn't have custom protocols for communication, instead, it has a pipeline to a script executor. And when the applications need to communicate with PumpkinDB, small PumpkinScript programs are sent through a network interface in order to do that.

History

PumpkinDB is a descendant of a event capture and querying framework [ES4J](https://github.com/eventsourcing/es4j). The difference from ES4J is that, PumpkinDB has a HLC timestamp, a UUID, complies with the ELF format, and it treats events as binary blobs. It started as a backend for a lazy event sourcing approach on 2017.

Concurrency Control

Not Supported

Data Model

Key/Value

It supports binary keys and values, which enables the use of any encoding such as XML, JSON and Protobuf.

Foreign Keys

Not Supported

Isolation Levels

Not Supported

Logging

Not Supported

Query Compilation

Not Supported

Storage Architecture

Disk-oriented

Stored Procedures

Not Supported

PumpkinDB Logo
Website

http://pumpkindb.org/

Source Code

https://github.com/PumpkinDB/PumpkinDB

Tech Docs

http://pumpkindb.org/doc/

Developer

Yurii Rashkovskii

Country of Origin

CA

Start Year

2017

Project Type

Open Source

Written in

Rust

Operating Systems

Linux, Windows

Licenses

Mozilla Public License