Skill v1.0.3
currentAutomated scan100/100~1 modified
version: "1.0.3"
<!-- 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, then
iii --use-default-configfor a scratch
instance; see 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
- [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.
- [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.
- [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.