RabbitMQ: Backoff is king

RabbitMQ is a fantastic piece of infrastructure for building event driven systems, but it’s far too easy to skip a key implementation detail early on (in haste, or ignorance) and end up creating extremely fragile systems. What I am referring to here is Message Redelivery and the need for some form of back-off. The worst-case scenario runs as follows: you have a series of queues that consume events that are published to your exchange....

September 7, 2020 · Noah Stride

Scaling Firestore & lessons we learnt

Firestore (or GCP Datastore), as a concept, is pretty appealing: an (almost) infinitely scaleable, high availability NoSQL database. However, there’s quite a few things that will easily catch you out if you aren’t careful. This post will probably err more on the side of pointing out the negatives, since Firestore tend to sell you the positives pretty effectively themselves. Sharding Firestore shards documents between their instances based on the ID you’ve assigned each document....

August 16, 2020 · Noah Stride