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.


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

Not Supported

Data Model


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


Not Supported

Query Compilation

Not Supported

Storage Architecture


Stored Procedures

Not Supported

People Also Viewed

PumpkinDB Logo


Source Code


Tech Docs



Yurii Rashkovskii

Country of Origin


Start Year


Project Type

Open Source

Written in


Operating Systems

Linux, Windows


Mozilla Public License

People Also Viewed