---
title: "The Design & Implementation of Sprites"
description: "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."
---

# The Design & Implementation of Sprites

[Fly.io](https://yomu.fyi/company/fly-io) · Jan 14, 2026

**Type:** Explainer

## 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.

**Tags:** [Fly Machines](https://yomu.fyi/topic/fly-machines), [Linux](https://yomu.fyi/topic/linux), [Object Storage](https://yomu.fyi/topic/object-storage), [Sprites](https://yomu.fyi/topic/sprites)

- Source: [Fly.io](https://fly.io/blog/design-and-implementation)
- Source URL: https://fly.io/blog/design-and-implementation
- Ingested by Yomu: 2026-09-03T01:26:39.138Z

[Read original post](https://fly.io/blog/design-and-implementation)
