9080
and responds with You said hi to <name>!
to a greet
request.
Select your favorite runtime:
Prerequisites:
- NodeJS >= v20
1
Install Restate Server & CLI
Restate is a single self-contained binary. No external dependencies needed.Start the server:Find the CLI at:You can find the Restate UI running on port 9070 (
http://localhost:9070
) after starting the Restate Server.2
Get the Greeter service template
3
Run the Greeter service
4
Register the service
Tell Restate where the service is running, so Restate can discover and register the services and handlers behind this endpoint.
You can do this via the UI (Expected output:If you run Restate with Docker, use
http://localhost:9070
) or via:http://host.docker.internal:9080
instead of http://localhost:9080
.When using Restate Cloud, your service must be accessible over the public internet so Restate can invoke it.
If you want to develop with a local service, you can expose it using our tunnel feature.
5
Send a request to the Greeter service
Invoke the service via the Restate UI playground: go to
Or invoke via Expected output:
http://localhost:9070
, click on your service and then on playground.
curl
:6
Congratulations, you just ran Durable Execution!
The invocation you just sent used Durable Execution to make sure the request ran till completion.
For each request, it sent a notification, slept for a second, and then sent a reminder.Send a request for Expected output:You can see in the service logs and in the Restate UI how the request gets retried.
On a retry, it skipped the steps that already succeeded.
Even the sleep is durable and tracked by Restate.
If you kill/restart the service halfway through, the sleep will only last for what remained.
Alice
to see how the service behaves when it occasionally fails to send the reminder and notification:
Restate persists the progress of the handler.
Letting you write code that is resilient to failures out of the box.
Have a look at the Durable Execution page to learn more.