Skip to content
Back to skills

Incremental Adoption

ASecurity

<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/next/tutorials/incremental-adoption/overview.mdx. -->

  • 18,821 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 3, 2026
developmenttypescriptpythonrustapi

Works with

  • api

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned September 3, 2026

npx -y skills add iii-hq/iii --skill incremental-adoption --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Incremental Adoption?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Incremental Adoption
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/iii-hq-incremental-adoption-38b76c2c/badge)](https://www.skillsdirectory.com/skills/iii-hq-incremental-adoption-38b76c2c)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
<!-- 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 ([install](../../install), then `iii --use-default-config` for a scratch
  instance; see [Default configuration](../../using-iii/engine#default-configuration)).
- 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're just 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.

Files in this skill

  • migrate-persistence.mdx98 B
  • migrate-persistence.mdx.skill.md197 B
  • offload-to-queue.mdx102 B
  • offload-to-queue.mdx.skill.md198 B
  • overview.mdx1.8 KB
  • overview.mdx.skill.md1.8 KB
  • wrap-existing-api.mdx99 B
  • wrap-existing-api.mdx.skill.md196 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…