Restate v1.2.0: A distributed durable execution engine, built from first principles
Release Highlights 🌟
High-availability and fast fail-overs 💪
This release allows you to scale out your Restate Servers and run them in a highly-available, distributed setup. Restate runs active-active deployments, with data getting copied instantly for fast, consistent fail-over. Try deploying a multi-node cluster yourself.
The single Restate server binary comes with all-batteries-included and no required external dependencies. You can start with a single node deployment and then seamlessly turn your deployment into a multi-node cluster by starting new Restate server processes. Grow the cluster yourself.
Operational tooling 🔧
We have created a new cluster administration tool to operate a multi-node Restate deployment. With restatectl
, you can check the status of your cluster, view the partitioning layout, change the configuration of your cluster, and take snapshots.
Graphical UI: Insights beyond your usual queue 🔬
This release adds a graphical UI to add an easy and intuitive way to manage, navigate, and debug your Restate applications. You can now access and query all the useful data that Restate collects about your application and answer questions like:
- What function execution is blocking my invocation from getting executed?
- Where in my chain of calls did my handler or workflow get stuck?
- How many times was this function retried and which step is failing with what error?
and many more. The UI is bundled with Restate Server and accessible at the admin port http://localhost:9070
.
Performance improvements 🚀
This release further improves the latency and throughput of the system. The following are measurements for a one-step stateful workflow under load:
Layout | Restate version | p50 | p75 | p90 | p99 | load |
---|---|---|---|---|---|---|
3-way replication (with 3 nodes) | 1.2.0 | 17ms | 22ms | 27ms | 44ms | 21 118 rps |
single node | 1.2.0 | 15ms | 19ms | 23ms | 37ms | 23 715 rps |
single node | 1.1.6 | 23ms | 25ms | 29ms | 39ms | 16 910 rps |
You can run this benchmark yourself.
Backwards compatibility 🔙
The 1.2 release is fully backwards compatible with previous Restate releases starting from version 1.1. If you have a single node deployment that you would like to turn into a multi-node deployment without losing any data, then follow the multi-node migration guide.
Managing scheduled invocations 🕐
The Restate CLI and UI show you scheduled invocations. Restate allows you to cancel and kill these invocations now.
Full Changelog: v1.1.6...v1.2.0
Deprecations 💡
This release removes the need for a dedicated port for the metadata store. In previous releases, Restate used port 5123 for it. Now, the metadata store listens on port 5122 by default. Consequently, the config option metadata-store.bind-address
has been removed.
Install
Pull the Docker images
docker pull docker.restate.dev/restatedev/restate:1.2.0
docker pull docker.restate.dev/restatedev/restate-cli:1.2.0
Install prebuilt binaries via Homebrew
brew install restatedev/tap/restate-server
brew install restatedev/tap/restate
brew install restatedev/tap/restatectl
Install prebuilt binaries into your npm project
npm install @restatedev/restate-server@1.2.0
npm install @restatedev/restate@1.2.0
npm install @restatedev/restatectl@1.2.0
Download binary archives
File | Platform | Checksum |
---|---|---|
restate-server-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
restate-server-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
restate-server-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
restate-server-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
restate-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
restate-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
restate-cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
restate-cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
restatectl-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
restatectl-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
restatectl-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
restatectl-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
New Contributors
- @sunng87 made their first contribution in #1634
- @aradwann made their first contribution in #1728
- @muhamadazmy made their first contribution in #1779
- @nikrooz made their first contribution in #2077
- @hamirmahal made their first contribution in #2371
- @iMezemz made their first contribution in #2372
- @myypo made their first contribution in #2454
- @edmondop made their first contribution in #2493