Why schema drift goes undetected
Here is a scenario from a project in its third year of operation. Migrations are managed properly. CI is green. validate passes. Then an error shows u…
Latest Web news from Tech News
Here is a scenario from a project in its third year of operation. Migrations are managed properly. CI is green. validate passes. Then an error shows u…
A PostgreSQL MCP server can remain available during failover and still return the wrong answer. The connection retries against a replica. The replica …
A retrieval system returned the right embedding, the right similarity score, and a completely wrong answer. The chunk it surfaced shared vocabulary, n…
For most of a year, every query our application made — reads and writes alike — went to the same primary Postgres instance. It worked fine until it di…
I've always been amazed by how Oracle Database handles updates to a unique column—performing set-based operations that don't violate the unique constr…
In financial backend systems, network retries represent a classic race-condition vector. If a client attempts to post a transaction, suffers a TCP tim…
Most multi-tenant applications keep tenants apart with one line of code, repeated forever: SELECT * FROM documents WHERE organization_id = $ 1 That li…
Most backend engineers implement multi-tenant quota checks using a standard "read-then-write" pattern. In production, this pattern is highly unsafe: S…
In this post, I summarize my hands-on experience completing the Microsoft Applied Skills: Configure and migrate to Azure Database for PostgreSQL asses…
We run Postgres for a product with millions of users. Along the way I've broken it in every possible way. Here are the lessons I wish I'd known on day…
It's easy to reach for the popular tool before asking what your system actually needs. For job queueing, the usual advice is to use RabbitMQ or Kafka.…
If you have been following my Dev.to articles, you know I built Chatzyo — a real-time video chat platform using WebRTC. That project taught me a lot a…
Всем привет! На связи Михаил Поливаха, технический лидер проекта Axelix . Я уже выпускал статью по мотивам вопросов в рамках Spring Айо Академии. Так …
In Structured Logging for Node.js , I covered how to turn scattered console.log calls into structured, queryable events. That solves the "what happene…
In the last article , I walked through what changes when a SaaS grows past a single server: load balancers, stateless app instances, a database that s…
In Organizations, Teams, and Invitations we got people into the right organization: memberships, roles, invite flows, all the plumbing that decides wh…
In Subscription Billing and Plans we wired up the part of the product that collects money. This article covers the part that gets people into the prod…
In A Production Security Checklist , I walked through what to lock down before opening the doors to real users. Security is a pass/fail gate: you eith…
Supabase local dev = a 12-container, 2.3 GB Docker stack. tinbase serves the same APIs from one 58 MB process . No Docker. It's real Postgres 17 — RLS…
-- looks fine in review, locks your busiest table in prod: ALTER TABLE users ALTER COLUMN email SET NOT NULL ; -- same result, no outage: ALTER TABLE …
Disclosure: I build Schemity , a desktop ERD tool - this post is from our blog and uses it for the examples. TL;DR: Every environment runs a slightly …
A feedback button is easy to ship. A feedback system is harder. The difference is not the input form. It is what happens after someone presses Send : …
There's a class of bug reports that keeps coming back in the NocoBase community, especially in the Chinese-language forum: "all my times are off by 8 …
SQL for Beginners: Building a Mini School Database from Scratch If you're learning SQL, the fastest way to make it stick is to build something real no…
In the previous post, Cypher graph queries on PostgreSQL with Apache AGE , I showed how to model and query a property graph in PostgreSQL using Apache…
-- looks routine in review, locks your table in production: CREATE INDEX idx_orders_customer ON orders ( customer_id ); ALTER TABLE users ALTER COLUMN…
An MCP server for Postgres can be read-only and still hurt production. Exploratory joins, wide aggregates, synchronized schedules, and concurrent retr…
Installing Postgres directly on your machine works, but it gets messy fast once you're juggling multiple projects that each want different versions, e…
If you're working with Go services that talk to a relational database, chances are you've bumped into GORM . It's the most widely used ORM in the Go e…
Row level security in Supabase fails quietly. There is no crash, no red error banner, nothing in your logs that says "this table is wide open." The ap…