🎉 Restate v1.4.3: Multi-region Restate cluster
We are pleased to announce the release of Restate v1.4.3! This release brings several improvements, new features, bug fixes, and enhancements across the platform. 🚀
✨ Highlights
🛠️ CLI/Tool Enhancements
- 🔧 Shell Completions for
restatectl
andrestate
CLI: Both CLI tools now support shell completions for bash, zsh, fish, and PowerShell, with automatic shell detection and installation commands. This significantly improves the developer experience when working with Restate from the command line! 💻 - 📍 Location Display in
restatectl node ls
: Therestatectl node ls
command now includes location information in its output, providing better visibility into node placement.
📊 Observability & Tracing
- 🔗 OTLP+HTTP Support: Added support for OTLP+HTTP in the tracing endpoint, expanding observability integration options.
- 🎨 Updated Web UI: Restate UI has been updated to v0.0.92 with various improvements.
⛵ Helm Chart Improvements
- 🔄 Flexible Environment Variable Configuration: The Helm chart now allows avoiding setting
nodeName
oradvertisedAddress
, enabling more flexible environment variable management and preventing duplicate env var issues that can cause problems with Helm. - ⚙️ Custom Command and Args Support: Added support for specifying custom command and arguments in the Helm chart, allowing advanced entrypoint scripting (e.g., fetching availability zones from AWS). ☁️
- 📦 Stateful Set Fix: The version is no longer set in stateful sets, resolving potential upgrade issues.
🌊 Bifrost & Log Management
- 🔐 Experimental Chain Sealing: Added experimental support for chain sealing markers, allowing log chains to be sealed with a special marker in metadata without requiring reconfiguration. This feature includes:
- A new
restatectl log seal <LOG-IDs>
command for manual chain sealing 🔨 - Support for empty logs and advanced snapshot/reconfiguration scenarios 📸
- Foundation for seamless cluster restoration with initial LSN offsets 🔄
- A new
- ✂️ Experimental Partition-driven Log Trimming: Introduced experimental feature
worker.experimental-partition-driven-log-trimming
that replaces cluster-controller-driven trimming with partition leader-based durability tracking.
💾 Storage & Partition Management
- 🔒 Fine-grained Partition Store Locking: Implemented a new locking model for partition stores with improved ownership patterns and lifecycle management.
- 📈 Durable LSN Tracking Improvements: Enhanced durable LSN loading from persistent storage on partition store open, with new watch mechanisms for better state tracking.
- 🗃️ RocksDB Management Refactoring: Improved RocksDB manager with better ownership model, background operation handling, and cleaner shutdown procedures.
🏗️ Metadata & Cluster Management
- 🤝 Metadata Server Auto-join Control: Added
MetadataServerOptions::auto_join
to control whether nodes automatically join the metadata cluster on startup. - 🔄 Improved Node Removal Handling: Enhanced handling of node removal scenarios, including better reconfiguration completion when all current workers are disabled.
🐛 Bug Fixes
- ⚡ Scheduler Reconfiguration Bug: Fixed a bug in
Scheduler::complete_reconfiguration
where wrong version comparison could lead to premature reconfiguration completion. - ✅ Reconfiguration Logic Fixes: Corrected
Scheduler::requires_reconfiguration
checks that could cause false positives. - 🔄 Service Type Change Handling: Fixed issues when overwriting services and changing their type.
- 🌐 HTTP Protocol Detection: Improved error detection when mixing HTTP/1.1 and HTTP/2 protocols.
- 🔍 Loglet Index Management: Fixed bugs in lookup index management for replicated loglets.
- 📝 Sequencer Write Availability: Fixed issues where SequencerAppender can now reconfigure logs that become write unavailable due to read-only node marking.
📈 Upgrade Notes
You can safely upgrade from Restate x.y
to x.(y+1)
releases without manual data migration, as Restate performs automatic data migration for you. 🔄
For detailed technical information about the changes, refer to the commit history in the release: v1.4.2...v1.4.3
This release represents significant improvements in developer experience, operational capabilities, and system reliability! 💪 The new shell completions and Helm chart enhancements make Restate easier to deploy and manage, while the experimental features pave the way for advanced log management capabilities. 🎯
Install
Pull the Docker images
docker pull docker.restate.dev/restatedev/restate:1.4.3
docker pull docker.restate.dev/restatedev/restate-cli:1.4.3
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/[email protected]
npm install @restatedev/[email protected]
npm install @restatedev/[email protected]
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 |