0x55aa
โ† Back to Blog

#Databases

17 articles tagged with "databases"

backendmessaging

๐Ÿ“ค The Outbox Pattern: Two Writes, One Lie

Your database commit succeeded. Your Kafka publish failed. Now what? The transactional outbox pattern fixes the dual-write problem that every 'just publish an event after saving' tutorial conveniently skips.

Aug 19, 2026
5 min read
Read more
databasesbackend

๐Ÿชฆ Soft Deletes vs Hard Deletes vs Audit Tables: The Database Never Forgets (Unless You Told It To)

DELETE FROM users WHERE id = 42 feels satisfying right up until legal, support, and future-you all ask where that row went. A field guide to soft deletes, hard deletes, and the audit tables that actually save you.

Aug 18, 2026
5 min read
Read more
architecturemulti-tenancy

๐Ÿข Multi-Tenancy Strategies: One App, Many Masters (Without Losing Your Mind)

Shared schema, schema-per-tenant, or database-per-tenant? A practical tour of multi-tenancy strategies, the tradeoffs nobody puts on the slide, and the row-level security trick that saves you from your own ORM.

Aug 09, 2026
5 min read
Read more
databasesserverless

๐ŸŠ Connection Pooling in Serverless: The Pool That Keeps Drowning

Connection pools were invented to stop you from opening a new database connection per request. Serverless functions spin up a fresh process per request. These two ideas do not get along, and Postgres will tell you so at exactly 2am.

Aug 04, 2026
6 min read
Read more
databasesperformance

๐Ÿ“„ Pagination Purgatory: Why Page 4,000 Is Where Your API Goes to Die

OFFSET pagination works beautifully in every demo and every code review, right up until a customer scrolls far enough to bring your database to its knees. Here's why, and what to do instead.

Jul 28, 2026
5 min read
Read more
databasesperformance

๐Ÿ” Reading Query Plans: Your Database's Confession Under Interrogation

EXPLAIN ANALYZE is your database confessing exactly what it did and why it took so long. Most engineers run it, see a wall of text, and close the tab. Here's how to actually read the confession.

Jul 23, 2026
5 min read
Read more
backendmessaging

๐Ÿ“ฌ The Outbox Pattern: How to Stop Lying to Your Message Broker

You write to the database, then publish an event. What happens when the process dies between those two lines? The outbox pattern is the boring, reliable answer to a problem every event-driven system eventually hits.

Jul 22, 2026
6 min read
Read more
databasesread-replicas

๐Ÿชž Read Replicas: Why Your App Forgets What It Just Wrote

You save a profile, refresh the page, and your old bio is back. Nobody deleted your change โ€” it's sitting happily on the primary. Your GET request just talked to a replica that hasn't caught up yet. Welcome to read-your-writes consistency, the bug that only shows up in production.

Jul 21, 2026
5 min read
Read more
architecturemicroservices

๐Ÿงต The Saga Pattern: Distributed Transactions Without the Two-Phase Commit Hangover

Your monolith had ROLLBACK. Your microservices don't. The saga pattern is how you fake a distributed transaction using nothing but events, compensating actions, and the quiet acceptance that everything is eventually consistent.

Jul 12, 2026
5 min read
Read more
backendarchitecture

๐ŸŒŠ Event Sourcing: Your Database Has Amnesia (Here's the Fix)

Most databases only store the current state โ€” the last write wins and history vanishes. Event Sourcing flips this on its head: store what happened, derive what is. Here's how to apply it without drowning in ceremony.

Jun 28, 2026
6 min read
Read more
databasespostgresql

๐Ÿ”ข OFFSET Pagination is a Lie: Switch to Cursors Before Your Table Eats You Alive

OFFSET-based pagination sounds innocent until your table hits a million rows and your database starts full-scanning just to skip the first 50,000. Here's why cursor-based pagination is the fix your API deserves.

Jun 16, 2026
6 min read
Read more
backendarchitecture

CQRS: When Your Read and Write Models Need a Divorce \U0001F500

CQRS separates the commands that mutate state from the queries that read it โ€” giving you independent scaling, specialized models, and saner codebases. Here's when it's worth the complexity and when it's overkill.

Jun 14, 2026
6 min read
Read more
testingbackend

๐Ÿญ Test Data: Stop Writing Fixtures, Start Building Factories

Hardcoded fixtures make your tests brittle and your seed files a nightmare to maintain. Factories generate realistic, varied test data on the fly โ€” here's why your test suite needs to make the switch.

Jun 13, 2026
5 min read
Read more
performancebackend

๐Ÿ“Š P99 Is Your Real Boss: Why Average Latency Is Gaslighting You

Your dashboard says 45ms average. Your users say the app feels sluggish. Both are telling the truth โ€” your average is just hiding the tail. Here's how to measure, diagnose, and tame P99 latency before it chases users away.

Jun 11, 2026
7 min read
Read more
databasesperformance

๐ŸŒ N+1 Queries: The Silent API Killer Hiding in Your ORM

Your API feels fine until it doesn't. The N+1 query problem is the most common database performance bug in ORM-heavy backends โ€” and it hides in plain sight until your database is on fire.

Jun 02, 2026
7 min read
Read more
databasespostgresql

๐Ÿ—‘๏ธ Soft Deletes vs Hard Deletes vs Audit Tables: Pick Your Strategy Before Production Picks It for You

Deleting a database row sounds trivial โ€” until your boss asks why the customer record vanished and nobody knows. Here is how to pick the right deletion strategy before a production incident forces your hand.

May 19, 2026
6 min read
Read more
backendapi-design

Cursor-Based Pagination: Why OFFSET Is Slowly Killing Your API ๐ŸŒ

OFFSET pagination feels intuitive until your database is scanning 500,000 rows to serve page 100. Cursor-based pagination fixes the performance cliff, ghost records, and duplicate entries in one shot.

May 18, 2026
6 min read
Read more