All projects
Shipped
2024· Backend / Systems Developer

Graph Database Engine

Graph-native data engine with a Cypher-like query language

graphdatabaseengine.app
Graph Database Engine

Overview

Most student database projects wrap a relational engine. This one builds the graph engine itself — nodes, edges, transactions, and a query language — from first principles, then exposes it through a FastAPI backend and an interactive Streamlit visualizer.

Key features

  • Custom Cypher-like query language for expressive node/edge traversal
  • ACID-compliant transaction handling across writes
  • Interactive graph visualization and live querying through Streamlit
  • FastAPI layer exposing graph CRUD and query endpoints

Architecture & engineering decisions

01

FastAPI backend exposing graph CRUD and query endpoints

02

Custom Cypher-like query parser mapping expressions to graph traversals

03

ACID-compliant transaction layer guaranteeing consistency across writes

04

Streamlit interface for interactive graph visualization and live querying

Product gallery

View full gallery →
graphdatabaseengine.app
Example graph queries running against the engine

Challenges & how I solved them

Designing a transaction layer that preserves ACID guarantees without a full database engine underneath

Implemented write-ahead logging semantics around graph mutations so a failed transaction couldn't leave the graph in a partially-updated state.

Parsing a Cypher-like query language and mapping it to efficient graph traversals

Built a small recursive-descent parser producing an AST, then compiled that AST to traversal operations rather than interpreting query strings directly.

Rendering large graphs responsively inside Streamlit

Limited default render depth and let users expand subgraphs on demand instead of rendering the entire graph on every query.

Lessons learned

  • Building a database engine — even a small one — teaches transaction and consistency concepts no course project centered on an existing DB can.
  • Query language design is a UX problem: the parser needs to forgive minor syntax variance to feel usable.

Stack

FastAPI
Python
Streamlit
Graph Theory
Cypher-like DSL
Query languageCustom Cypher-like DSL
RoleBackend / Systems Developer
Year2024