<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/next/tutorials/incremental-adoption/overview.mdx. -->
Scanned 9/3/2026
Install to Claude Code
npx -y skills add iii-hq/iii --skill incremental-adoption --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Incremental Adoption?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/iii-hq-incremental-adoption-36ade547)More formats (shields.io, HTML) on the badges page.
<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/next/tutorials/incremental-adoption/overview.mdx. -->
# Overview
## Introduction
In this tutorial, you will learn how to bring iii into an existing system incrementally, without a
big-bang rewrite. You'll wrap an existing HTTP service as an iii function so other workers can
address it, move slow work behind an iii queue so callers return immediately and retries are
handled by the queue, and migrate persistence into iii's state primitives. By the end your system
runs on iii without ever needing a full cutover.
## Prerequisites
- A running iii engine and Compose daemon ([install](../../install), then create `config.yaml` and
`worker-compose.yaml`; add the workers each step needs with `compose::add`; see
[Default configuration](../../using-iii/engine#default-configuration) and
[Compose](../../using-iii/compose)).
- An existing service you want to migrate, reachable over HTTP.
- The SDK for the language your service is written in (TypeScript, Python, or Rust).
## Steps
1. **[Wrap an existing API](./wrap-existing-api)**. Front the existing HTTP service with an iii
function so it becomes addressable by `function_id` from anywhere in the system. No traffic
moves yet; you are adding an iii-shaped entry point.
2. **[Offload work to a queue](./offload-to-queue)**. Move long-running calls behind a queue
worker so the wrapper returns immediately and retries are handled for you.
3. **[Migrate persistence](./migrate-persistence)**. Migrate one slice of state at a time into a
state worker, leaving the rest of your system untouched until you're ready to move the next
slice.
## Conclusion
Working through the three sub-tutorials in order moves the system onto iii a slice at a time. Each
slice is independently reversible, so you can pause or roll back at any boundary without taking the
rest of the system down.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!