Skip to main content

Local Dev

Running Restate Server & CLI locally

Restate is a single self-contained binary. No external dependencies needed.

Install Restate Server and CLI via:

brew install restatedev/tap/restate-server &&
brew install restatedev/tap/restate

Then run the Restate Server with:

restate-server
Server and CLI configuration

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

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

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>

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"
Debugging and troubleshooting with the CLI

Have a look at the introspection page for a list of useful commands.