BackendPaaS Postgres Connection Limits: Surviving max_connections
The deploy was green and stayed green. Two days later the platform added replicas, each opened its own pool, and the newest ones could not get a connection at all.
Read MoreBlog
Articles on backend architecture, API design, and database patterns — NestJS, PostgreSQL, and building reliable server-side systems.
58 articles
BackendThe deploy was green and stayed green. Two days later the platform added replicas, each opened its own pool, and the newest ones could not get a connection at all.
Read More
An agent writes valid SQL that passes on an empty table and locks a live one. The lock every Postgres migration statement takes, and the review that catches it.
Read More
The checklist I run before a NestJS ERP API goes near a managed PaaS: shutdown hooks, a readiness endpoint that will not restart a healthy pod, migrations that run exactly once across replicas, and connection pool arithmetic.
Read More
Why a network receipt printer stops printing, and how to prove where: port 9100 sessions, half-open sockets, timeouts and an idempotent print queue.
Read More
Where AI coding agents genuinely help on an ERP codebase, from scaffolding modules to MCP integrations, and where a human who knows the business must stay in charge.
Read More
Understand the three MCP server primitives: model-controlled tools, application-controlled resources, and user-controlled prompts, and how to choose the right one for each job.
Read More
MCP defines two transports: stdio for local subprocess servers and Streamable HTTP for remote services. Here is how they differ and when to use each.
Read More
Build a Model Context Protocol server in TypeScript with the official SDK: scaffold it, add a typed tool, connect it to Claude, and take it from local to production.
Read More
The multi-instance mutual-exclusion problem, the Redlock quorum algorithm, node-redlock with TTL auto-extension, why fencing tokens matter, and when a Postgres advisory lock wins.
Read More
How Turso and libSQL push SQLite past a single process — embedded replicas for local-speed reads, remote writes that sync, and database-per-tenant at edge scale.
Read More
Why I reach for DuckDB — an in-process OLAP engine that runs SQL directly on Parquet, CSV, JSON, and S3 files with zero ETL, and how it compares to Postgres.
Read More
Node.js now runs .ts files with no build step by erasing the types. Here is how type stripping works, what it refuses to run, and where it still needs a compiler.
Read More
PostgreSQL 18 landed with a real asynchronous I/O engine, native uuidv7(), virtual generated columns by default, B-tree skip scan, and OAuth login. Here is what actually matters for backend work.
Read More
HTTP finally has a method for search that needs a body. QUERY (RFC 10008) is safe, idempotent, and cacheable like GET — here is why it beats GET-with-a-body and POST.
Read More
A hands-on guide to wiring Midtrans Snap into Next.js: server-side token creation, the Snap popup, and a webhook that verifies the SHA512 signature key.
Read More
Static vs dynamic QRIS, generating a dynamic QR through a licensed PSP, the MPM flow, webhook handling, NMID onboarding, and 2025 MDR fees — a hands-on Node.js guide.
Read More
How I wire up message templates, webhooks, the 24-hour window, and per-message pricing with the official WhatsApp Cloud API for Indonesian apps.
Read More
Bun and Node.js are closer than the benchmarks suggest in 2026 — here is where each actually wins in production, from startup to native addons.
Read More
SQL-first or schema-first? A hands-on comparison of bundle size, edge support, and migrations for the two ORMs I actually ship on.
Read More
How Hono lets me write one Web-Standards API and run it unchanged on Cloudflare Workers, Bun, and Node — plus typed RPC with zero codegen.
Read More
Kafka is the reflexive answer to "we need a message log," but for workloads under a million messages per second, NATS JetStream gives you durable streams and solid delivery guarantees with a fraction of the operational cost.
Read More
Request-scoped providers look like a one-line fix, but scope bubbles up your whole DI graph and costs latency. Here is how it works and why I reach for AsyncLocalStorage first.
Read More
Delete your hand-written API interfaces and generate them from the OpenAPI spec instead — how openapi-typescript and openapi-fetch give you a typed client and catch backend drift at compile time.
Read More
How I added distributed tracing to a NestJS API with OpenTelemetry auto-instrumentation — the SDK setup, context propagation, and exporting spans to a collector.
Read More