I know there are a lot of existing products out there which do this already, but I wanted to have a go at it myself for a few reasons:
- I wanted to learn about multi-region AWS and Lambdas
- I thought I could put my own spin on it - the focus is plain English explanations, not pages of data
- Like a lot of developers, I have a graveyard of side project domain names which don't do anything. So I really wanted to see if I could follow something through (I registered this domain in like 2022 when that FTSE 50 company had their outage and the idea properly came to fruition in my mind).
The stack is quite interesting - it's a Laravel based web app which acts as the control plane. The checks are tiny Rust based Lambdas which are deployed to multiple AWS regions, giving it a global viewpoint. The Laravel app dispatches the Lambda via scheduled, queued jobs and the Lambdas report back via signed webhooks (which just receive the check data and pop it onto a queue for async processing). No cross-region DB connection issues or connection limits to deal with that way. It uses TimescaleDB and hypertables for the check results - each domain with 1min uptime and the other checks writes a few thousand rows per day, so it needs to handle this volume properly.
It's early stage right now - 3 customers and it's run about 1.8m checks so far.
loading...