This episode traces the origins of Firecracker: its roots in crosvm, AWS's decision to rewrite it in Rust, the one-process-per-microVM philosophy, and the numbers that made it revolutionary — 125 ms boot, under 5 MiB of overhead, and 15 trillion Lambda invocations per month.

In episode 0 we prepared the host, the binaries, and the microVM images. This time we step away from the terminal for a moment and ask a more fundamental question: why does Firecracker exist? What real problem made AWS willing to write a VMM from scratch, and why does this technology now drive the largest serverless services in the world?
Understanding the history isn't just trivia. Firecracker's design choices — Rust, one process per VM, a minimal API, the jailer — are all answers to specific problems AWS faced at the time. If you understand the problem, every technical decision in the coming episodes will make sense on its own. This is the episode that separates the operator who merely runs commands from the engineer who understands the system.
The Firecracker story starts with a hard truth inside AWS Lambda. Lambda originally was a serverless service that ran functions inside containers with VM-based multi-tenant isolation — many customer functions shared a single VM, with a shared kernel. That approach was efficient, but it left a fundamental problem: weak isolation between customers.
If one customer function managed to break through the process and namespace isolation, the host kernel would be compromised — and every other function on the same VM would be exposed too. For a service used by banking and healthcare companies, that risk model was unacceptable. AWS needed hardware-grade isolation for every workload, like EC2, but at container cost and speed.
This is the paradox that gave birth to Firecracker: EC2's expensive isolation and container's cheap speed. The solution didn't exist on the market — QEMU was too heavy, and containers weren't secure enough.
AWS's answer was to build a new VMM. The AWS team noticed that Chromium OS, through the crosvm project, had already built a Rust-based VMM focused on security and simplicity. crosvm proved that a VMM could be written in a memory-safe language — and memory safety is precisely the problem that had to be solved for multi-tenant isolation.
Firecracker was born as a fork of crosvm, then aggressively re-directed toward a single goal: minimalism for serverless. Features that weren't needed for function workloads — VGA, audio, GUI, USB — were dropped. What remained was only the essentials: kernel boot, block devices, networking, and a tightly curated set of virtio devices.
These two decisions — choosing Rust and starting from crosvm — are Firecracker's philosophical foundation:
Firecracker was announced and released as open source under the Apache 2.0 license in late 2018. That open source decision mattered: communities beyond AWS — from serverless startups and PaaS providers to internal platform teams — could use and build on the same technology as AWS. Since then the ecosystem has grown: firecracker-containerd, Flintlock, kata-containers, and various AI agent sandbox implementations.
The numbers that come with Firecracker aren't marketing hype:
Compare that with traditional QEMU: boots of several seconds and hundreds of MiB of overhead. That order-of-magnitude difference is what allows Lambda to operate at the scale and cost we know today — and what enables the scale-to-zero pattern, where a VM can be completely shut down when unused and brought back up in milliseconds.
Note
The 15 trillion invocations per month figure should be read in context: Firecracker isn't used for every kind of Lambda workload, but it's the basis of the isolation model that allowed Lambda to grow to that scale at a controlled cost.
Now that we understand the history, let's formulate why Firecracker is chosen when building a serverless platform:
These four pillars are the same reasons E2B, Fly.io, Daytona, and other serverless providers cite when choosing Firecracker for their sandboxes. They all need the same thing: strong isolation with near-zero startup cost.
To understand Firecracker's position, we need to distinguish it from technologies it's often confused with:
The takeaway: Firecracker fills a specific niche — ephemeral workloads that must boot fast, pack densely, and isolate strongly. Not a replacement for QEMU everywhere, but a way to open up a category of systems that previously couldn't be built at a reasonable cost.
The key takeaways:
In the next episode 2 we'll dissect Firecracker's core concepts and main architecture — one process per microVM, a comparison of Rust VMMs versus QEMU, the virtio device family (net, block, vsock, balloon, entropy), the rate limiter, the jailer, and the metadata service MMDS. After this episode, you'll see firsthand how a design born from a real problem gets translated into code.