SRE Infra Layer

Pipeline World runs on Redis. This page covers that half of it: the job queue, the cache, and the rate limiter.

Queue

Joining doesn't run the pipeline inline. The request drops a job on an RQ queue and returns straight away, so the browser is done in milliseconds while a separate worker process does the validate, test, build and deploy work.

That matters when joins arrive in bursts. They pile up in the queue instead of holding web requests open until they time out.

0
Jobs Queued
1
Failed Jobs
Redis
Backend

Cache

The live world state answers one question: who is spawned, and where. It's cached in Redis, cache-aside. A read checks the cache, drops through to Postgres on a miss, then writes what it found back.

Deploy clears the entry itself instead of leaving it to a TTL, so a new character shows up the moment it goes live and not whenever the timer happens to run out.

2
Cache Hits
10
Cache Misses
16.7%
Hit Rate

Rate Limiting

The join endpoint is public and takes anonymous input, so Flask-Limiter caps it per IP. The counters sit in the same Redis, which means one limit covers every worker instead of each process keeping its own count.

10 per hour
Join Endpoint Limit