DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

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. [04][05][06]

Source Code
https://github.com/PumpkinDB/PumpkinDB[02]
Country of Origin
CA
Start Year
2017
End Year
2017
Project Type
Open Source
Written in
Rust
Operating Systems
Linux, Windows

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.

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.

PumpkinDB does not have custom protocols for communication, instead, it has a pipeline to a script executor. When the applications need to communicate with PumpkinDB, small PumpkinScript programs are sent through a network interface in order to do that.

Database Entry

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.

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.

PumpkinDB does not have custom protocols for communication, instead, it has a pipeline to a script executor. When the applications need to communicate with PumpkinDB, small PumpkinScript programs are sent through a network interface in order to do that.[04][05][06]

History[07]


PumpkinDB is a descendant of a event capture and querying framework 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


Data Model[02]


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

Foreign Keys


Isolation Levels


Joins


Logging


Query Compilation


Query Interface[08]


It doesn't support SQL, right now, it only supports low-level manual querying with PumpkinScript.

Storage Architecture


Stored Procedures


Views


Revision #9 Last Updated: