How WhatsApp Served Millions of Connections per Server With a Tiny Team
How Erlang's lightweight process model and deep FreeBSD tuning let WhatsApp run hundreds of millions of users' traffic with a remarkably small team.
Tag
8 articles
How Erlang's lightweight process model and deep FreeBSD tuning let WhatsApp run hundreds of millions of users' traffic with a remarkably small team.
Why the default executors behind @Scheduled and @Async are wrong for production, and how to configure thread pools that actually match your workload.
Why deadlocks happen even in well-designed schemas, how to read a deadlock log, and the lock-ordering habits that prevent them.
Beyond synchronized and Thread, java.util.concurrent has a purpose-built tool for nearly every coordination problem. Here's when to reach for each.
CompletableFuture's API surface is huge and easy to misuse. These are the composition patterns that hold up in real asynchronous pipelines.
Virtual threads remove the cost of blocking, not the need for careful concurrency design. Here's exactly what improves and what stays your problem.
How Postgres lets readers and writers proceed without blocking each other, what a snapshot actually is, and where MVCC's costs show up later.
A tour of READ UNCOMMITTED through SERIALIZABLE, the dirty reads and phantom rows each level permits, and how to pick one without guessing.