I Started Building a Storage Engine in C++ ! It Became PacificDB

Hi everyone!

I'm the founder and developer of PacificDB, an open-source database engine I've been building in C++.

I wanted to share how this project started, what I've built so far, and where I'm planning to take it.

How It Started

When I started learning about databases, I was curious about what actually happens behind the scenes.

How does a database store millions of records? How does it recover after a crash? How does replication work?

Instead of just reading about these concepts, I decided to try implementing them myself.

My original plan was to build a small storage engine in C++.

But as I continued developing it, I started thinking about a bigger problem.

Why PacificDB?

Modern applications often use multiple storage systems.

A typical AI application might need:

  • A document database for application data.
  • A vector database for semantic search.
  • Object storage for uploaded files.
  • Additional infrastructure to connect these systems.

I wanted to explore whether these capabilities could work together in one database.

That idea eventually became PacificDB.

What I've Built So Far

PacificDB is built using C++17.

The storage engine uses a Write-Ahead Log (WAL) and an LSM-based architecture.

The Community Edition includes:

Document Storage

Store, retrieve, update, and query JSON documents.

Vector Search

Store embeddings and perform similarity searches. The latest experimental release also introduces sparse and named vectors, HNSW indexing, and hybrid retrieval.

Media Storage

Upload, download, and manage files alongside application data.

Replication

Raft-based replication for distributed deployments.

Developer Tools

A command-line interface, desktop Workbench, and client libraries for Node.js, Python, and Java.

The Hardest Part

One thing I've learned is that implementing a database feature is very different from making it reliable.

Writing data to disk is one problem.

Making sure that data survives unexpected shutdowns, that replicas agree on committed operations, and that indexes remain consistent introduces entirely different challenges.

I've spent a significant amount of time working on durability, recovery, replication, and performance testing.

And there's still a lot to improve.

Where PacificDB Stands Today

PacificDB Community Edition is available publicly.

The latest v1.2 release candidate is intended for testing and evaluation, not production deployment.

Some functionality, particularly the newer vector capabilities, is still experimental. I'm continuing to work on reliability, performance, distributed operations, and production readiness.

I'm sharing the project at this stage because I want developers to experiment with it and provide feedback.

What's Next?

My goal is to continue developing PacificDB into a database that can handle different kinds of application data without requiring a separate storage engine for every use case.

I'm also working toward additional plans for businesses and engineering teams.

But for now, my main focus is improving the Community Edition and learning from developers who try it.

Try PacificDB

GitHub: https://github.com/hitesh-reddy-k/pacificdb-community

Website: https://pacificdb.in

Latest testing release: https://github.com/hitesh-reddy-k/pacificdb-community/releases/tag/v1.2.0-rc.2

If you're interested in database internals, storage engines, or vector search, I'd appreciate your feedback.

I'm especially interested in hearing what you'd improve, what use cases you'd test, and what you think is missing.

Thanks for reading!