JJS Insights

Jatin Jain Saraf (JJS) Insights & Blog

Case StudiesPortfolioCourses
  1. Home
  2. /Blog

JJS Insights & Reflections

Deep-dive technical articles, career growth strategies, and mindset lessons. Lessons learned from production engineering and life.

Content Type

⚙️
PostgreSQL

Every Postgres Write Triggers Five Background Processes. Here's What Each One Actually Does.

An UPDATE returns in two milliseconds, but underneath, Postgres just ran WAL logging, checkpoint bookkeeping, wait-event tracking, vacuum, and ANALYZE to make that write durable, recoverable, and still fast to plan. Here's what each of those five processes actually does, and which one is usually behind the latency spike that has no slow query in sight.

Sep 14, 2026
8 min read
7 tags
PostgreSQLDatabaseWALVacuumPerformanceBackendSQL
Read article
🐘
ORM

Your ORM Isn't Lying to You. It's Just Not Telling You Everything.

ORMs like Prisma and TypeORM don't lie to you about your database, they just don't tell you everything. Here's where that gap shows up in production: N+1 queries, migrations that silently drop columns, connection pool exhaustion in serverless, and the SQL your ORM actually generates versus what you think it's running.

Sep 3, 2026
13 min read
7 tags
ORMPostgreSQLDatabaseBackend DevelopmentPerformanceSQLPrisma
Read article
🔀
System Design

The Dual-Write Problem: Why "Update the DB, Then Publish an Event" Is Broken

An order gets saved to Postgres. The event that's supposed to tell payments, shipping, and notifications never goes out, because the process crashed one line later. Here's why that gap exists, and the two real patterns (Outbox, Sagas) that close it.

Aug 29, 2026
8 min read
4 tags
System DesignDistributed SystemsBackendArchitecture
Read article
🔍
postgresql

Elasticsearch Isn't Dead. You Probably Don't Need It

Search gets slow, someone says 'we need Elasticsearch,' and two weeks later there's a new cluster, a sync pipeline, and a class of bugs that didn't exist before. PostgreSQL's tsvector, GIN indexes, and pg_trgm cover the full-text and fuzzy-matching workload most teams actually have, without a second database to keep in sync. This is the case for starting there and adding Elasticsearch only when the workload actually demands it.

Aug 21, 2026
7 min read
5 tags
postgresqlelasticsearchfull-text-searchdatabase-architecturebackend
Read article
🐳
Docker

Why Your Docker Image Is 3GB and Nobody Noticed Until the Deploy Timed Out

A deploy that used to take ninety seconds now takes six minutes, and nobody changed the code. The real story is in how Docker layers, build caching, and registries accumulate weight that never comes back off on its own, plus how to actually measure it before you guess.

Aug 19, 2026
9 min read
3 tags
DockerDevOpsPerformance
Read article
🗄️
PostgreSQL

Why Postgres and Cassandra Made Opposite Bets on Storage Engines

A write-heavy ingestion table on Postgres starts choking under load: autovacuum can't keep up, WAL grows fast, and every insert costs more than it should. A Cassandra table doing the same job barely notices. The difference isn't tuning. It's a decision made before either database wrote a single line of code: B-Tree or LSM-Tree.

Aug 15, 2026
8 min read
5 tags
PostgreSQLDatabaseArchitectureSystem DesignBackend
Read article
🌊
EngineeringCulture

The Codebase You Sit In Rubs Off On You

Your habits as an engineer aren't shaped by courses and effort alone; they're shaped by the PRs, teammates, and incidents you sit next to every day.

Aug 11, 2026
5 min read
4 tags
EngineeringCultureSoftwareEngineeringCareerGrowthCodeQuality
Read article
⚡
PostgreSQL

PostgreSQL's Async I/O Engine: Why Your Sequential Scans Just Got 2-3x Faster

For twenty years, every PostgreSQL process read one disk page at a time and waited. PostgreSQL 18 finally lets it ask for many pages at once. Here's what changed under the hood, and how to verify the gain on your own workload.

Aug 8, 2026
4 min read
4 tags
PostgreSQLDatabasePerformanceBackend
Read article
🧭
PostgreSQL

Vector Search in Postgres: What pgvector's Indexes Actually Cost You

Adding a vector column and calling it a day works fine in a demo. In production, it means picking between HNSW and IVFFlat, understanding what "approximate" actually costs you in recall, and watching index build time and memory explode as your embedding table grows. A practical look at pgvector's index internals and the tradeoffs nobody mentions in the quickstart.

Aug 5, 2026
10 min read
5 tags
PostgreSQLDatabaseAIBackendSoftwareEngineering
Read article
PortfolioCourses

© 2026 Jatin Jain Saraf (JJS). All rights reserved.