github restatedev/restate v1.8.1

5 hours ago

Restate v1.8.1

v1.8.1 is a drop-in upgrade from v1.8.0, and you can roll back to v1.8.0 unless you enable signal recording. If you are still on v1.7.x, follow the v1.8.0 upgrade requirements.

✨ Highlights

🌊 Smoother Hand-Over When Migrating to the Kafka Ingress Integration

When you delete a Kafka subscription, Restate now finishes ingesting the records it has already read before it stops. It then logs the last ingested offset of every topic partition. When you migrate a topic to the Kafka ingress integration, you can use these offsets to start the integration exactly where Restate stopped. That way no record is processed twice and none is skipped.

🗑️ Bulk Deployment Removal

To remove several deployments at once, pass several ids to restate deployments remove. You can also use the new POST /deployments/bulk-delete Admin API endpoint.

restate deployments remove dp_14LsPzBd7Uuvbx8wA3wtKoD dp_11pXxBETJoA3YQ1jW8QnSuF

☸️ Kubernetes ConfigMap Changes Are Applied Without Restarts

Before this release, restate-server did not apply updates to its configuration file when the file was mounted from a ConfigMap. Settings that can be changed at runtime, such as rocksdb-total-memory-size, now take effect as soon as you update the ConfigMap.


⚠️ Breaking Change

restate deployments remove --json output. With --json, the deployment details now appear in a deployments array, and a new results array reports the outcome for each deployment. Scripts that parse this output need to be updated. The human-readable output is unchanged. See details →


🐛 Bug Fixes

  • Signals sent to invocations that haven't started yet are now recorded. Some invocations are still scheduled or waiting in a Virtual Object's queue. Signals sent to them, including awakeable completions, are now kept, and the handler receives them once it starts. To enable this, first upgrade all nodes to v1.8.1. Then set experimental-enable-preflight-signal-recording = true. Once you enable it, you can no longer roll back to a version older than v1.8.1. See details →
  • Logs with more than 2^32 records are trimmed again. Before this fix, such logs stopped shrinking, and for some log segments trimming could crash the worker role.

🆕 Also in This Release

  • Canonical IDs in the SQL tables. sys_invocation_status, sys_vqueues and sys_vqueue_entry_status have a new canonical_id column. It identifies a specific incarnation of an invocation.
  • Per-handler ingress metrics. You can opt in with ingress.detailed-request-metrics = true.
  • Security updates to the rustls TLS dependencies.
  • Restate UI 1.0.37, which is bundled with the server.
  • Upgrade note for the gRPC ingestion API: if you use the experimental gRPC ingestion API, in-flight records of a stream that is retried across the upgrade may be ingested twice.

📖 Full Release Notes →

Install

Pull the Docker images

docker pull docker.restate.dev/restatedev/restate:1.8.1
docker pull docker.restate.dev/restatedev/restate-cli:1.8.1

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.8.1
npm install @restatedev/restate@1.8.1
npm install @restatedev/restatectl@1.8.1

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

Don't miss a new restate release

NewReleases is sending notifications on new releases.