LZLethu Zuluinlethuzulu.hashnode.dev·Apr 20 · 19 min readThe Transactional Outbox Pattern in Go: What the Compiler Enforces and What Rust Leaves to YouThe failure scenario At 09:14:33, a customer places a £29.99 order on your platform. The order is saved to the database. The process crashes before publishing order.created to RabbitMQ. The fulfilment00
LZLethu Zuluinlethuzulu.hashnode.dev·Apr 20 · 18 min readBuilding an Idempotent Ledger in GoThe failure scenario At 14:03:42, Alice's app sends a £100 transfer to Bob. The server processes it, Alice's balance drops, Bob's rises. Then the network drops. The response never arrives. Alice's app00
LZLethu Zuluinlethuzulu.hashnode.dev·Apr 20 · 9 min readBuilding a Token Bucket Rate Limiter in Go with Chi and sync primitivesRate limiting is a problem every HTTP service eventually faces. In this post I will walk through building an in-memory token bucket rate limiter in Go, using chi for routing and nothing but the standa00
LZLethu Zuluinlethuzulu.hashnode.dev·Apr 20 · 10 min readBuilding a Token Bucket Rate Limiter in Rust with AxumRate limiting is one of those problems that looks simple on the surface, until you think carefully about what happens when hundreds of requests arrive for the same client at exactly the same moment. I00
LZLethu Zuluinlethuzulu.hashnode.dev·Apr 16 · 21 min readThe Transactional Outbox Pattern in Rust: Guaranteed Message Delivery Without Distributed TransactionsThe failure scenario At 09:14:33, a customer places a £29.99 order on your platform. The order is saved to the database. The process crashes before publishing order.created to RabbitMQ. The fulfilment00