From a single pod to per-user runtimes

Why a multi-tenant worker pool was the wrong abstraction the moment users brought their own MCP servers.

Amy Team1 min read

A multi-tenant worker pool is the obvious shape until users bring their own code. Once a customer can install an MCP server, "shared pool" stops meaning "efficient" and starts meaning "your blast radius is everyone."

We moved to per-user Fly machines for any run that touches user-supplied tools. Cold start is 800ms p50, which we hide behind the planning phase. The accounting got simpler too: a machine's lifetime is the run, so there's no garbage-collecting pods that almost-but-not-quite finished.

More in Amy Engineering

View all →

How is Amy's credit system

How we ship a credit-based ledger that survives partial failures, refunds, and webhook re-deliveries — without losing a single cent.

Henry Ng3 min read