Restate v1.7.13
Restate v1.7.13 fixes Virtual Object state consistency across replicas when using VQueues, improves graceful handling of HTTP/2 connection shutdowns, and adds a configurable RocksDB write rate limiter mode for bursty workloads.
🛠️ Consistent State Changes Across Replicas
With VQueues enabled, Virtual Object state changes made through the Admin API could be applied on the partition leader but skipped by followers. After a leader change, the Virtual Object could then continue with its old state.
State changes are now applied on all partition replicas. This includes changes made through POST /services/{service}/state and the restate state edit, patch, and clear commands.
Upgrade guidance: Only clusters with a replication factor greater than 1 that used the state API while VQueues were enabled are affected. If this applies to you, re-submit the state of the affected Virtual Objects after upgrading—for example, with restate state edit—to bring all replicas back in line.
Related: #5416
🔌 Graceful HTTP/2 Connection Shutdowns
When a service endpoint sent a graceful HTTP/2 GOAWAY, Restate could cancel the connection and interrupt unrelated in-flight invocations.
Restate now drains the connection gracefully: in-flight invocations complete, and new requests are retried on another connection.
No configuration or migration is required.
Related: #5311
⚡ Configurable RocksDB Write Rate Limiter
The new rocksdb-write-rate-limiter-mode option controls how the write rate limit is applied to RocksDB flushes and compactions:
auto-tuned(default): Preserves existing behavior. The rate adapts to recent demand, starting as low as 1/20 of the configured maximum and taking minutes to ramp up.fixed: Makes the full configured maximum available immediately, without ramp-up.
If you experience write stalls under bursty load, use fixed mode with a rocksdb-max-write-rate-per-second value your storage device can sustain. For example:
rocksdb-max-write-rate-per-second = "2400 MiB"
rocksdb-write-rate-limiter-mode = "fixed"Restart the node for the setting to take effect. Existing deployments retain the default auto-tuned behavior unless explicitly configured otherwise.
Related: #5408
Install
Pull the Docker images
docker pull docker.restate.dev/restatedev/restate:1.7.13
docker pull docker.restate.dev/restatedev/restate-cli:1.7.13Install 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.7.13
npm install @restatedev/restate@1.7.13
npm install @restatedev/restatectl@1.7.13Download 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 |