# Scaling & Releases

Scale app instances, inspect immutable releases, promote deliberately, and recover through generation-fenced rollback.

Ferrite scales stateless application processes independently from durable
services. Surviving instances keep running while the desired generation changes.

## Scale an app

Open the app in the Dashboard and choose the desired instance count, or call
the Ferrite MCP `scale` tool with `{"app":"my-app","instances":3}`. Confirm
the result with `ferrite status my-app`.

Scale to zero to turn an app off without deleting its durable resources. Scale
back to one or more instances to resume service. Each mutation returns a durable
operation identifier and advances the generation so a stale control request
cannot overwrite a newer decision.

## Inspect releases

Use the Dashboard release and environment views, or the MCP `releases`,
`environments`, and `deploy_history` tools.

Releases are immutable. Environments point at a release. Promotion moves a
pointer; it does not rebuild source.

## Recover

Use the Dashboard rollback control for the selected deployment. MCP clients can
call `rollback` for the previous app artifact or `rollback_release` with the
exact app, environment, and release identifier.

Verify status, public route, logs, and the critical product journey after a
rollback. A control-plane success response is not the final application check.

Use [Logs](/developers/logs/) and [Reliability](/developers/reliability/) during rollout.
