The document engine at the core of OxiDB: MongoDB-style queries and aggregation, indexes and the planner, disk-first storage, the WAL, OCC transactions and read snapshots, with every example run against a real server.
$ whoami
Hi, I'm Barış Akın.
I write about compilers, databases, distributed systems and user interfaces. This is where I share what I learn while building things from scratch.
rillrustoxidbzapgotypescript
Latest posts 26 posts
OxiDB's search layer: BM25 ranking, Snowball stemming in 18 languages with Turkish examples, highlighted snippets, searching inside PDF/DOCX/XLSX files, an mmap'd inverted index, k-NN with HNSW and measured recall.
How I built geospatial queries and graph stages into OxiDB's document engine, shown with real places in Istanbul and a small flight network: a geohash index that is generous but never wrong, BFS, and lazy Dijkstra.
I added a second engine to OxiDB next to the document engine, with its own WAL and files: enforced constraints, CTEs, window functions, stored procedures in Cobra bytecode, unmodified psql/psycopg and EF Core.
A deep dive into oxidb-tsdb, OxiDB's time series engine: Gorilla compression bit by bit, typed fields, line protocol, aggregations, continuous rollups with a watermark, low-lock backup and real compression ratios measured on my own sensor data.
I built a RESP-speaking key-value layer into OxiDB: five data types, TTLs, pub/sub, WATCH, Lua and snapshots. Real redis-cli and redis-py sessions, benchmarks against Redis 8.6, and the honest limits.
OxiDB's S3 layer: multipart, range and conditional reads, SSE-S3/SSE-C, SigV4 and presigned URLs, lifecycle expiry, how blobs sit on disk and full-text search inside uploaded files. All with real sessions.
The MQTT 3.1.1 and AMQP 0-9-1 brokers inside OxiDB: honest QoS 1/2, sessions and durable queues that survive kill -9, MQTT-to-collection ingest, and an AMQP worker consuming a sensor's MQTT publishes.







