github restatedev/restate v1.2.0

6 days ago

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

Don't miss a new restate release

NewReleases is sending notifications on new releases.