Blog

Tech: lessons from production

Short, practical posts on backend architecture, databases, payments and AI systems. Most come with a 1-minute video.

10,000 tasks
200 threads ≈ 50 s
virtual ≈ 1 s
▶ 1-min video inside
Tech · 7 min read ·

Java virtual threads: 50× more throughput, with almost no code change

Java 21 virtual threads let a server handle thousands of waiting requests on a few OS threads. How they work, a simple benchmark, and the two traps: pinning and database limits.

SAVED ✓
SENT ✗
▶ 1-min video inside
Tech · 6 min read ·

The dual-write problem: why your order saves but the event never arrives

Writing to a database and then publishing to Kafka, RabbitMQ or SQS can silently lose events. Learn why, and how the transactional outbox pattern fixes it.

1 primary.
3 replicas. 2 traps.
▶ 1-min video inside
Tech · 5 min read ·

Read replicas: two production traps nobody warns you about

Read replicas take load off your primary database, but replication lag causes stale reads and gets worse under load. Two production traps and how to avoid them.