Fly.ioExplainer
The Design & Implementation of Sprites
Summary
Sprites are Linux virtual machines designed as fast, disposable computers with root access, persistent 100GB durable filesystems, automatic sleeping, and low inactive cost. To make creation feel instantaneous, the platform removes user-facing OCI container images and keeps pools of preloaded standard Fly Machines, so a new Sprite mainly performs startup work rather than pulling and unpacking an image. Its storage stack follows a hacked-up JuiceFS model, splitting immutable data chunks from metadata, keeping metadata durable with Litestream, and using a sparse NVMe volume as a dm-cache-like read-through cache for object storage; checkpoints and restores primarily shuffle metadata. This design supports migration and recovery without depending on local storage, while low-cost sleeping and object-backed disks suit interactive work more than warm, containerized production workloads, and billing applies only to storage blocks actually written.
Context
Sprites were launched as a different model from Fly Machines: ball-point disposable computers that can be created in a second or two, persist data, sleep automatically when inactive, and remain inexpensive to keep around. The design targets interactive work where users want a new computer available without preallocating machines or managing container images.
Approach / What changed
Sprites remove the user-facing container image and run from a standard container, allowing physical workers to maintain pools of empty instances. Their durable root filesystem uses S3-compatible object storage, with data chunks separated from metadata, Litestream durability for metadata, and attached NVMe used as a cache. Sprites retain Fly.io infrastructure such as Fly Machines and Corrosion while adding a separate orchestration model.
Takeaways
Sprites use standard containers internally, but prewarmed pools avoid the slow image-pull and unpacking work that makes Fly Machine creation take over a minute.
Durable Sprite state lives in S3-compatible object storage; local NVMe caches immutable chunks, so local disk loss does not determine the stored state and workloads can migrate or recover more easily.
Sprites and Fly Machines make different trade-offs: aggressive sleeping and object-backed disks favor interactive workloads, while production applications commonly need warm workloads delivered as OCI containers.
Source and freshness
- Source
- fly.io
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.