Skip to content

v1.4.3

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 29 Jul 10:28
4f01ab8

🎉 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 and restate 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: The restatectl 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 or advertisedAddress, 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 🔄
  • ✂️ 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