Releases: temporalio/sdk-ruby
v1.0.0
Get from RubyGems and read the README
Highlights
Temporal Ruby SDK Generally Available
With this 1.0.0 release, the Ruby SDK is now considered stable. This means it has been thoroughly used and tested to ensure it meets Temporal quality standards. Throughout the prerelease period, we have received ample feedback and have adjusted the SDK as needed to address feedback and address any issues encountered. We strive to not make any backwards incompatible changes.
Environment Configuration Support (experimental)
Users can now use Temporalio::EnvConfig
to load environment configuration from config files or environment variables. This is the same configuration approach that can be used across other SDKs and CLI. See https://docs.temporal.io/develop/environment-configuration for more details.
Custom Slot Suppliers (experimental)
Worker tuners can now provide custom slot suppliers. This is for very advanced use cases that need custom logic to determine when a slot can be reserved. A custom implementation of Temporalio::Worker::Tuner::SlotSupplier::Custom
can be provided for slot suppliers in a tuner which is then called from the C extension to determine if a slot can be reserved and to report on usage/release of the slot. Users of this API should pay close attention to API docs since it can affect the running of the system if implemented improperly.
Specific Changes
2025-09-03 - 1039803 - Bump golang.org/x/net in /temporalio/test/golangworker (#303)
2025-09-03 - 4fc6a58 - Bump tracing-subscriber from 0.3.19 to 0.3.20 in /temporalio (#331)
2025-09-08 - d3391ec - Reduce the scope of the illegal call tracer and other tracing fixes (#332)
2025-09-10 - 51b5f95 - Environment configuration (#326)
2025-09-11 - cd07caa - Activity reset support (#337)
2025-09-15 - 472ac69 - Added first_execution_run_id to Workflow::Info (#339)
2025-09-18 - 3a8a977 - Remove useless disable_file parameter for ClientConfig.load (#340)
2025-09-19 - 1aa91a2 - Added retry policy to activity info (#341)
2025-09-19 - 1bcac1a - Added option to set local activity summary. Added activity summary tests (#342)
2025-09-29 - 9b641d7 - Custom slot suppliers (#343)
v0.6.0
Get from RubyGems and read the README
Highlights
💥 BREAKING CHANGE - Ruby Sync Constructs Invalid in Workflows
After many discussions/deliberations, we have decided to consider Ruby sync constructs in the standard library like sleep
, Timeout.timeout
, Mutex
, and Queue
as illegal in workflows. Even though they are fiber-aware and therefore implicitly durable, they can accidentally be misused and are implicitly used inside things like loggers that can cause issues for workflows. We provide workflow-safe equivalents for use.
See the PR at #314, associated links on that PR, and the README for more information.
Task Queue Fairness Support (experimental)
This release adds support for Task Queue Fairness. Fairness is a new feature of Temporal's task queues that allows for more control over the order that tasks are dispatched from a backlog. It's intended to address common situations like multi-tenant applications and reserved capacity bands.
This is in addition to experimental "Task Queue Priority Support" provided last release.
Specific Changes
2025-07-24 - f3b34b4 - Coinbase Ruby guide (#304)
2025-08-11 - 21a3f31 - Fix issue with high-contention mutex causing hung workflows (#309)
2025-08-14 - ad2b9f5 - Update Core (#317)
2025-08-14 - d799d0b - Change Logger::Unknown
to Logger::UNKNOWN
in scoped_logger.rb (#316)
2025-08-15 - 4a9740e - Do not resume wait condition if fiber no longer alive (#312)
2025-08-18 - 248dc46 - 💥 BREAKING CHANGE - Disallow Ruby sync constructs from stdlib and provide safe alternatives (#314)
2025-08-20 - c3779da - Fairness Keys & Weights (#322)
2025-08-21 - 6512c02 - Priority key should be optional (#323)
2025-08-21 - 960f162 - Allow name reuse on different handler types (#321)
2025-08-25 - 16cf3aa - Update version to 0.6.0 (#324)
2025-08-25 - 866db2b - Update Core to support Unix-socket-based HTTP proxies (#325)
v0.5.0
Get from RubyGems and read the README
Highlights
Converter Hints
Most places that affect data conversion to/from types can now have a "hint" set which is passed to the payload converter. These hints are not used by the default converters, but custom converters may leverage them to know more about the (de)serialization they should perform.
Task Queue Priority Support (experimental)
Task queue priority annotations are present to set workflow/activity tasks with specific priorities. This is to support the new server-side task queue priority feature which is still experimental.
Worker Versioning (experimental)
Worker versioning details can be set for workflow/activity/worker options. This is to support the new server-side worker versioning feature which is still experimental.
Poller Auto-scaling
Options for automating poller scaling are now available for workers.
Activity Pause (experimental)
Activities are interrupted via cancellation mechanisms when paused. This is to support the new server-side activity pause feature which is still experimental.
Specific Changes
2025-04-28 - 1d8b2c6 - Add CODEOWNERS (#256)
2025-05-02 - 9ce9025 - Fix auto_time_skipping_disabled (#260)
2025-05-06 - f1339c4 - Set required_ruby_version to >= 3.2.0
in the gemspec (#258)
2025-05-12 - 8c5c8b9 - Add workflow check that local activity exists (#263)
2025-05-12 - 95dc94a - Fix issue with OTel timestamps (#257)
2025-05-14 - df0a34f - Worker Versioning (#262)
2025-05-19 - 644bb8c - Use proper workflow start time in workflow info (#266)
2025-05-19 - 64deb42 - Rails README updates (#269)
2025-05-19 - f2e5c17 - Disallow keyword arguments on handlers with deserialized arguments (#265)
2025-05-29 - 196e0ac - Priority annotations (#274)
2025-05-29 - 251c16f - Expose poller automation (#275)
2025-06-03 - 143e257 - Added application error category (#277)
2025-06-09 - 2d764b5 - Properly retry start update if not ready yet (#282)
2025-06-09 - 9a043a2 - Do not require heartbeating to be done in context (#280)
2025-06-10 - 143e421 - Activity pause support (#283)
2025-06-27 - cc5b393 - Allow specifying Exception
as workflow failure types (#286)
2025-06-27 - ec7212b - Pagination support for listing workflows through a new Client#list_workflow_page method (#285)
2025-06-27 - ee772d4 - Support certain Time
calls in workflows with advanced validation (#291)
2025-07-07 - 7eb50a5 - Make application error type default to unqualified type name (#295)
2025-07-07 - dc83329 - Allow unsafe disabling of durable workflow scheduler (#284)
2025-07-14 - 5685901 - Converter hints (#296)
2025-07-22 - 6ca1482 - Update Core (#302)
2025-07-22 - c00f40a - Allow hints for accessing last heartbeat details (#300)
2025-07-23 - 5be2e52 - Prevent using SDK runtimes/clients/workers across forks (#301)
v0.4.0
Get from RubyGems and read the README
Highlights
SDK is now Beta
Ruby SDK is now in beta and will be GA soon. Being in beta means that APIs are fairly stable and there has been plenty of production usage to confirm the quality and approach. Although no exact timetable is set, it will not be too long before 1.0. Please use the SDK and give feedback to help us get to GA faster.
Workflow Replayer
Temporalio::Worker::WorkflowReplayer
is now available to replay workflow histories. This is an important utility to be able to test that new workflow code is safe to run against existing histories. Using this with debug_mode=true
is a common way to debug and step through past executions to see what exact lines of code were executed.
MUSL Support
Linux MUSL x64 gems are now published for each release. This allows users to use Alpine-based images/containers to run the SDK.
Update-with-Start and Signal-with-start
The client now supports signal_with_start_workflow
, start_update_with_start_workflow
, and execute_update_with_start_workflow
. As of this writing, update with start is not yet GA, but it will be soon.
OpenTelemetry Tracing
Temporalio::Contrib::OpenTelemetry
module is now present that contains a TracingInterceptor
class that can be set on clients for enabling OpenTelemetry tracing, and a Workflow
module with with_completed_span
/completed_span
helpers. See the README section on OpenTelemetry for more details.
Specific Changes
2025-01-23 - 17cb2b5 - Fix typo in README example (#202)
2025-01-24 - c79cc61 - Workflow replayer support (#204)
2025-01-27 - 2115ff7 - Workflow and activity instance access from context (#207)
2025-02-03 - fb1305e - Add CI job for docs site (#212)
2025-02-05 - 880b63c - Add request for feedback to README (#214)
2025-02-06 - 5b34e03 - Downgrade minimum protobuf version needed to 3.25 (#213)
2025-02-06 - c32e808 - MUSL support (#216)
2025-02-11 - 319fe2e - Update and signal with start (#201)
2025-02-11 - 7162d3e - Worker client replacement and activity client access (#219)
2025-02-12 - 66d68ea - Search attributes and UI port on dev server (#220)
2025-02-19 - e7f19b9 - Reserve certain prefixes (#221)
2025-02-20 - 5d692ab - User metadata (#223)
2025-03-17 - 6b4631a - Use RawValue for built-in query response (#231)
2025-03-17 - be309d1 - Support HTTP protocol for OTel metrics (#230)
2025-03-21 - 6218c1f - Simple nightly benchmark (#235)
2025-03-27 - 7f746cf - OpenTelemetry tracing support (#234)
2025-04-09 - 89945c2 - Buffered metric support (#240)
2025-04-15 - 125e51a - Update Core (with changes needed) and update version to 0.4.0 (#245)
2025-04-15 - 5af1ad4 - Support parentless OTel workflow spans (#244)
2025-04-15 - 90d90bd - Support unsafe IO/io_wait inside workflows (#243)
2025-04-17 - 71af6d6 - Expose root execution info and update cargo deps (#247)
2025-04-18 - c52c5fe - Custom histogram metric buckets (#249)
v0.3.0
Get from RubyGems and read the README
Highlights
Workflow Support
This release contains full support for workflows, now making the Ruby SDK a full-featured SDK. All major features of workflows are present. See the README for details on how to write workflows.
Schedule Support
Full support for creating and managing schedules has been added.
💥BREAKING CHANGE: Activity Definition Base Class Change
In the last alpha release in 0.2.0, activities had to extend Temporalio::Activity
. This has changed to Temporalio::Activity::Definition
to be more in line with workflows.
💥BREAKING CHANGE: Ruby 3.1 No Longer Supported
Only Ruby 3.2+ is supported now (with tests confirming 3.4 support). Many uses of Struct
s have been changed to Data
along with this change.
Specific Changes
2024-10-21 - 67741fc - RPC cancellation support (#174)
2024-11-04 - ecaab5c - Support for schedules (#175)
2024-11-12 - 4599b85 - Metric meter support (#177)
2025-01-14 - 4512224 - Workflow support (#183)
2025-01-15 - a9034b8 - Drop Ruby 3.1, support Ruby 3.4 (#194)
2025-01-17 - 350951a - Dynamic activities (#198)
2025-01-21 - bbd6842 - Update core, update release version to 0.3.0 (#199)
2025-01-21 - ef62a52 - Cloud test and support for updating API keys and RPC metadata (#197)
2025-01-22 - eabdfe8 - Remove Ractor expectations (#200)
v0.2.0
Get from RubyGems and read the README
Highlights
Client and Activity Worker support
This is the initial release since a refresh of the project. This includes client support and support for running activities. See the README for more information on how to use.
Specific Changes
2024-07-12 - c896498 - Reset repository
2024-07-12 - fd0bfe0 - Add LICENSE and README
2024-08-09 - 5d17d1d - Scaffolding and bare-bones client (#155)
2024-09-05 - ff47b2e - More client features (#157)
2024-09-13 - 83bea60 - More client work (#159)
2024-10-17 - dd0da03 - Activity support (#161)
2024-10-18 - cde31d9 - Update version to not mark gem as prerelease and add source gem (#173)
2024-10-18 - f49e5a3 - Support for building gems and prepare release (#171)
v0.1.1 (alpha)
Get it from Ruby Gems.
See the README for an overview.
Highlights
- Include RBS files in bundled Gems. Should hopefully fix #134.
- Make sure
ld
build flag-Wl,-undefined,dynamic_lookup
is always present on OSX. This fixes a build issue causingUndefined symbols for architecture arm64
errors if Ruby was built with XCode 14+.
The following features from previous releases are also included:
- A Temporal client capable of starting, signaling, querying and terminating workflows
- Activity-only workers for running Ruby activities
- Data Converters for encoding/decoding payloads
- Supports for Linux x64 and ARM (glibc >= 2.31), and OSX x64 and ARM (aka. M1/M2)
Note that this release does not include support for developping workflows in Ruby. Development for Workflow Workers is ongoing and will be included in a future release (no ETA at this moment).
v0.1.0 (alpha)
Get it from Ruby Gems.
See the README for an overview.
Highlights
- TLS/mTLS is now supported!
- Added support for activity interceptors
The following features from previous releases are also included:
- A Temporal client capable of starting, signaling, querying and terminating workflows
- Activity-only workers for running Ruby activities
- Data Converters for encoding/decoding payloads
- Supports for Linux x64 and ARM (glibc >= 2.31), and OSX x64 and ARM (aka. M1/M2)
Note that this release does not include support for developping workflows in Ruby. Development for Workflow Workers is ongoing and will be included in a future release (no ETA at this moment).
v0.0.2 (alpha)
Activity Worker
This release includes:
- A framework for defining Activities
- An Activity Worker that allows you to process Activities
- Rename of the
Temporal
namespace toTemporalio
(inline with other SDKs)
This release does not include (these will be available in the upcoming releases):
- mTLS support for Temporal Client
- Interceptors for Activity Worker
- Workflow worker
Please refer to the README for instructions on how to use it.
v0.0.1 (alpha)
Initial release
This release includes:
- A Temporal Client based on the Core SDK for interacting with Temporal Server and specific workflows
- Data Converters for encoding/decoding payloads
- Support for macOS x64, macOS ARM, Linux x64 and Linux ARM
This release does not include (these will be available in the upcoming releases):
- mTLS support for Temporal Client
- Activity worker
- Workflow worker
Please refer to the README for instructions on how to use it.