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_vqueuesandsys_vqueue_entry_statushave a newcanonical_idcolumn. 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
rustlsTLS 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.
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.1Install prebuilt binaries via Homebrew
brew install restatedev/tap/restate-server
brew install restatedev/tap/restate
brew install restatedev/tap/restatectlInstall 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.1Download 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 |