Distributed Rate Limiting in Go: GCRA, Redis, and the Pitfalls Nobody Warns You About
Every production rate limiter has two layers. The first layer is the algorithm: token bucket, leaky bucket, fixed window, sliding
Every production rate limiter has two layers. The first layer is the algorithm: token bucket, leaky bucket, fixed window, sliding
# POST 1: Transactional Outbox (Slot 10 backend) You update a row in your database, then publish an event to
Continue readingThe Transactional Outbox Pattern in Go: Reliable Events Without Dual Writes
Here is a failure mode that shows up in every system with more than two backends: round robin distributes requests
Continue readingLoad Balancing Beyond Round Robin: Least Outstanding Requests and Consistent Hashing
Solve the dual-write problem with one extra table and SKIP LOCKED: a working Go implementation of the transactional outbox, plus the delivery-semantics gotchas that bite in production. … Continue readingThe Transactional Outbox Pattern: Reliable Events Without Distributed Transactions
When a request crosses five services and the latency budget blows up, a single log line rarely tells you where
Continue readingDistributed Tracing in Go with OpenTelemetry
Every engineering team eventually faces the same daunting question: what do we do with the legacy monolith? The temptation is
Every developer who has worked with microservices eventually hits the same wall: a single business operation needs to touch multiple
OpenTelemetry has had a remarkable 2026. What started as a project to unify traces, metrics, and logs has grown into
When one service in a distributed system starts failing, the cascade can bring down everything downstream. A slow database connection
Most applications store data the same way: overwrite the current state and move on. A customer changes their address? Update