Local Dev
Running Restate Server & CLI locally
- Download binaries
- Homebrew
- npm
- Docker
Install the Restate Server and CLI by downloading the binaries with curl
from the releases page, and make them executable:
Then run the Restate Server with:
restate-server
Install Restate Server and run it with:
brew install restatedev/tap/restate-server &&restate-server
Install Restate Server and run it with:
brew install restatedev/tap/restate-server &&restate-server
Install the CLI via:
brew install restatedev/tap/restate
Install the CLI via:
brew install restatedev/tap/restate
Install Restate Server and run it:
npm install --global @restatedev/restate-server@latest &&restate-server
Install Restate Server and run it:
npm install --global @restatedev/restate-server@latest &&restate-server
Or use npx, without installation:
npx @restatedev/restate-server
Or use npx, without installation:
npx @restatedev/restate-server
Install the Restate CLI via:
npm install --global @restatedev/restate@latest
Install the Restate CLI via:
npm install --global @restatedev/restate@latest
To run the Restate Server:
docker run --name restate_dev --rm -p 8080:8080 -p 9070:9070 -p 9071:9071 \--add-host=host.docker.internal:host-gateway docker.io/restatedev/restate:1.1
To run commands with the Restate CLI, use the following command:
docker run -it --network=host docker.io/restatedev/restate-cli:1.1 invocations ls
Replace invocations ls
by the CLI command you want to run.
Have a look at the CLI configuration docs or Server configuration docs for more configuration options.
Wiping Restate
To start the Restate Server from a clean slate, stop the server and then delete the data directory:
rm -rf <BASE_DIR>/<NODE_NAME>
Useful dev CLI commands
Check if the CLI is installed correctly and can find the server:
restate whoami
Check if the CLI is installed correctly and can find the server:
restate whoami
Register a new service deployment.
When running Restate in a Docker, replace localhost with host.docker.internal.
restate deployments register localhost:9080
Register a new service deployment.
When running Restate in a Docker, replace localhost with host.docker.internal.
restate deployments register localhost:9080
Cancel a single invocation or a batch of invocations.
Use --kill
to kill the invocation.
To remove all invocations, stop the server then do rm -rf <BASE_DIR>/<NODE_NAME>
, which will effectively delete all state/data of the Restate server.
restate invocation cancel <INVOCATION_ID># also works with <SERVICE>/<SERVICE_KEY>/<HANDLER> or a subset of it
restate invocation cancel <INVOCATION_ID># also works with <SERVICE>/<SERVICE_KEY>/<HANDLER> or a subset of it
Purge completed invocations from the state:
restate invocation purge <INVOCATION_ID># also works with <SERVICE>/<SERVICE_KEY>/<HANDLER> or a subset of it
Purge completed invocations from the state:
restate invocation purge <INVOCATION_ID># also works with <SERVICE>/<SERVICE_KEY>/<HANDLER> or a subset of it
Clear the K/V state of a Virtual Object or Workflows.
To clear all state, stop the server then do rm -rf <BASE_DIR>/<NODE_NAME>
, which will effectively delete all state/data of the Restate server.
restate kv clear <OBJECT_OR_WORKFLOW_NAME>restate kv clear <OBJECT_OR_WORKFLOW_NAME>/<SERVICE_KEY>
Clear the K/V state of a Virtual Object or Workflows.
To clear all state, stop the server then do rm -rf <BASE_DIR>/<NODE_NAME>
, which will effectively delete all state/data of the Restate server.
restate kv clear <OBJECT_OR_WORKFLOW_NAME>restate kv clear <OBJECT_OR_WORKFLOW_NAME>/<SERVICE_KEY>
Execute a SQL query on the invocation or application state.
See SQL introspection docs for example queries.
Use --json
to get the output in json format.
restate sql "query"
Execute a SQL query on the invocation or application state.
See SQL introspection docs for example queries.
Use --json
to get the output in json format.
restate sql "query"
Have a look at the introspection page for a list of useful commands.