Our internal admin product had a typical small-team stack: one Postgres primary with a replica, one Redis instance, three app servers, and a worker pool. Redis did three jobs: a response cache for expensive dashboard queries, a job queue, and pub/sub to push "report ready" events to websocket servers. It also produced most of our on-call pages that year, mostly memory eviction surprises and a failover that dropped queued jobs. We ran an experiment: could Postgres, which we already back...