Skip to main content

Ruby SDK developer guide

Ruby SDK Banner

Support, stability, and dependency info

The Temporal Ruby SDK is currently in Public Preview.

Ruby SDK RESOURCES

Build Temporal Applications with the Ruby SDK.

Temporal Ruby Technical Resources:

Get Connected with the Temporal Ruby Community:

Core Application

Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application.

Temporal Client

Connect to a Temporal Service and start a Workflow Execution.

Testing

Set up the testing suite and test Workflows and Activities.

  • Test frameworks: Testing provides a framework to facilitate Workflow and integration testing.
  • Testing Workflows: Ensure the functionality and reliability of your Workflows.
  • Testing Activities: Validate the execution and outcomes of your Activities.
  • Replay test: Replay recreates the exact state of a Workflow Execution.

Failure detection

Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries.

  • Workflow timeouts: Each Workflow timeout controls the maximum duration of a different aspect of a Workflow Execution.
  • Workflow retries: A Workflow Retry Policy can be used to retry a Workflow Execution in the event of a failure.
  • Activity timeouts: Each Activity timeout controls the maximum duration of a different aspect of an Activity Execution.
  • Set an Activity Retry Policy: Define retry logic for Activities to handle failures.
  • Heartbeat an Activity: An Activity Heartbeat is a ping from the Worker that is executing the Activity to the Temporal Service.
  • Heartbeat Timeout: A Heartbeat Timeout works in conjunction with Activity Heartbeats.

Workflow message passing

Send messages to and read the state of Workflow Executions.

Signals

  • Define Signal: A Signal is a message sent to a running Workflow Execution.
  • Send a Signal from a Temporal Client: Send a Signal to a Workflow from a Temporal Client.
  • Send a Signal from a Workflow: Send a Signal to another Workflow from within a Workflow, this would also be called an External Signal.
  • Signal-With-Start: Start a Workflow and send it a Signal in a single operation used from the Client.
  • Dynamic Handler: Dynamic Handlers provide flexibility to handle cases where the names of Workflows, Activities, Signals, or Queries aren't known at run time.
  • Set a Dynamic Signal: A Dynamic Signal in Temporal is a Signal that is invoked dynamically at runtime if no other Signal with the same input is registered.

Queries

  • Define a Query: A Query is a synchronous operation that is used to get the state of a Workflow Execution.
  • Send Queries: Queries are sent from the Temporal Client.
  • Set a Dynamic Query: A Dynamic Query in Temporal is a Query that is invoked dynamically at runtime if no other Query with the same name is registered.

Updates

  • Define an Update: An Update is an operation that can mutate the state of a Workflow Execution and return a response.
  • Send an Update: An Update is sent from the Temporal Client.

Interrupt a Workflow

Interrupt a Workflow Execution with a Cancel or Terminate action.

  • Cancel a Workflow: Interrupt a Workflow Execution and its Activities through Workflow cancellation.
  • Terminate a Workflow: Interrupt a Workflow Execution and its Activities through Workflow termination.

Asynchronous Activity completion

Complete Activities asynchronously.

  • Asynchronous Activity: Asynchronous Activity completion enables the Activity Function to return without the Activity Execution completing.

Versioning

Change Workflow Definitions without causing non-deterministic behavior in running Workflows.

Observability

Configure and use the Temporal Observability APIs.

  • Emit Metrics: Each Temporal SDK is capable of emitting an optional set of metrics from either the Client or the Worker process.
  • Set up Tracing: Explains how the Go SDK supports tracing and custom context propagation.
  • Log from a Workflow: Send logs and errors to a logging service, so that when things go wrong, you can see what happened.
  • Use Visibility APIs: The term Visibility, within the Temporal Platform, refers to the subsystems and APIs that enable an operator to view Workflow Executions that currently exist within a Terminal Service.

Debugging

Explore various ways to debug your application.

Schedules

Run Workflows on a schedule and delay the start of a Workflow.

Data encryption

Use compression, encryption, and other data handling by implementing custom converters and codecs.

Durable Timers

Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years.

  • Sleep: A Timer lets a Workflow sleep for a fixed time period.

Child Workflows

Explore how to spawn a Child Workflow Execution and handle Child Workflow Events.

  • Start a Child Workflow Execution: A Child Workflow Execution is a Workflow Execution that is scheduled from within another Workflow using a Child Workflow API.
  • Set a Parent Close Policy: A Parent Close Policy determines what happens to a Child Workflow Execution if its Parent changes to a Closed status.

Continue-As-New

Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID.

  • Continue-As-New: Continue-As-New enables a Workflow Execution to close successfully and create a new Workflow Execution in a single atomic operation if the number of Events in the Event History is becoming too large.