Designing Rate Limiting for a Node.js API
A deep dive into implementing distributed rate limiting using Redis and sliding window counters to protect your backend.
Thoughts on software, systems, and design.
A deep dive into implementing distributed rate limiting using Redis and sliding window counters to protect your backend.
Cache invalidation is one of the two hardest problems in CS. Here is how I messed it up and what I learned about event-driven invalidation.
Understanding how to distribute data across a changing set of servers without remapping the entire world.
Why the JavaScript ecosystem is rewriting everything in Rust, and why it matters for your build times.
Server Components are the biggest shift in React since Hooks. Here's why they matter and how they change the mental model of building apps.
A slow query is often just a missing index away from being instant. Learn the basics of B-Trees and how to analyze query plans.
Managing multiple repositories became a nightmare of version mismatches and duplicated code. Here is how a monorepo saved our sanity.
A mysterious outage that wasn't a code bug, but a misunderstood TTL record. A cautionary tale about the internet's phonebook.