AI agents often run for minutes, hours, or even days. This makes deploying new versions tricky: what happens if an agent starts on one version of your code and resumes later after you’ve deployed another?
If you swap out code from under an agent, execution can break. Or worse, a changed description or tool implementation can cause your agent to silently misinterpret its own history and produce inconsistent results.
This blog post introduces how to solve this via immutable deployments and pinned executions:
- Each deployment lives at a unique endpoint and represents an immutable, versioned snapshot of your code, prompts, tools, and schemas
- Every execution is pinned to its deployment; retries, resumptions, and callbacks always return to the same version
- New requests route to latest
The blog post shows how Restate implements this in practice. Versioning becomes an infrastructure property you don’t need to think about, rather than something you solve in code.
gvdongen•1h ago
If you swap out code from under an agent, execution can break. Or worse, a changed description or tool implementation can cause your agent to silently misinterpret its own history and produce inconsistent results.
This blog post introduces how to solve this via immutable deployments and pinned executions: - Each deployment lives at a unique endpoint and represents an immutable, versioned snapshot of your code, prompts, tools, and schemas - Every execution is pinned to its deployment; retries, resumptions, and callbacks always return to the same version - New requests route to latest
The blog post shows how Restate implements this in practice. Versioning becomes an infrastructure property you don’t need to think about, rather than something you solve in code.