The Omenabyte Blog
Notes from the build.
Field notes on shipping AI products, securing what you build, and running infrastructure with fewer moving parts. Everything here is tested before it ships — including the parts that turned out to be a bad idea.

Stop Recomputing Your Dashboard on Every Page Load
A materialized view pre-computes the aggregation once, REFRESH CONCURRENTLY hot-swaps it without locking readers, and pg_cron schedules it in-database. No ETL pipeline, no warehouse.
Read the post →
Databases · 6 posts

Billions of Log Rows, One Command to Make Them Disappear
Declarative partitioning plus a BRIN index prunes the scan to one partition — and retention becomes a single DROP TABLE, not a bulk delete job.

You Don't Need MongoDB for "Flexible" Data. You Need One Column Type.
jsonb plus a GIN index gives you document flexibility without a second database — and the "document" still joins against your relational tables in one transaction.

Your AI Feature Doesn't Need Pinecone. It Needs pgvector.
pgvector with an HNSW index puts embeddings in the same row as everything else — semantic and relational in one query, one transaction.

Postgres Can Do Typo-Tolerant Search. You Don't Need Elasticsearch Yet.
tsvector plus pg_trgm give you stemmed, ranked, typo-tolerant search inside the database you already run — no second cluster, no sync job.

I Replaced Redis and RabbitMQ With 15 Lines of Postgres
The FOR UPDATE SKIP LOCKED clause turns an ordinary table into a safe, concurrent job queue — tested for duplicates, crashes and reclaims before this post was written.