Temporal .NET SDK feature guidance
The following Temporal .NET SDK feature guides aim to show how to use Temporal features when developing Temporal Applications.
Core application
The Core application feature guide shows how to use the basic building blocks of a Temporal Application (Workflows, Activities, and Workers).
- Develop a basic Workflow Definition: Workflows are the fundamental unit of a Temporal Application, and it all starts with the development of a Workflow Definition.
- Develop a basic Activity Definition: One of the primary things that Workflows do is orchestrate the execution of Activities.
- Start an Activity from a Workflow: Calls to spawn Activity Executions are written within a Workflow Definition.
- Run a Worker Process: The Worker Process is where Workflow Functions and Activity Functions are executed.
- Set a Dynamic Workflow: Set a workflow that can be invoked dynamically at runtime.
- Set a Dynamic Activity: Set an Activity that can be invoked dynamically at runtime.
Temporal Client
The Temporal Client feature guide shows how to connect to a Temporal Service and start a Workflow Execution.
- Create a Temporal Client: Learn to instantiate and configure a client to interact with the Temporal Service.
- Connect to Temporal Cloud: Securely connect to the Temporal Cloud for a fully managed service.
- Start a Workflow: Initiate Workflows seamlessly via the .NET SDK.
- Get Workflow results: Retrieve and process the results of your Workflows efficiently.
Testing suite
The Testing suite feature guide shows how to setup 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
The Failure detection feature guide shows 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.
Message passing
The Workflow messages feature guide shows how to 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
The Interrupt a Workflow feature guide shows how to 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.
Versioning
The Versioning feature guide shows how to change Workflow Definitions without causing non-deterministic behavior in current long-running Workflows.
- Use the .NET SDK Patching API: Patching Workflows using the .NET SDK.
Observability
The Observability feature guide shows how to 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 propogation.
- 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
The Debugging feature guide covers the various ways to debug your application.
- Debug in a development environment: In addition to the normal development tools of logging and a debugger, you can also see what’s happening in your Workflow by using the Web UI and the Temporal CLI.
- Debug in a development production: Debug production Workflows using the Web UI, the Temporal CLI, Replays, Tracing, or Logging.
Schedules
The Schedules feature guide shows how to schedule Workflows and to delay the start of a Workflow.
- Schedule a Workflow
- Create a Scheduled Workflow: Create a new schedule for a scheduled Workflow.
- Backfill a Scheduled Workflow: Backfills a past time range of actions for a scheduled Workflow.
- Delete a Scheduled Workflow: Deletes a schedule for a scheduled Workflow.
- Describe a Scheduled Workflow: Get schedule configuration and current state for a scheduled Workflow.
- List a Scheduled Workflow: List a schedule for a scheduled Workflow.
- Pause a Scheduled Workflow: Pause a schedule for a scheduled Workflow.
- Trigger a Scheduled Workflow: Triggers an immediate action for a scheduled Workflow.
- Update a Scheduled Workflow: Updates a schedule with a new definition for a scheduled Workflow.
- Use Start Delay: Start delay functionality if you need to delay the execution of the Workflow without the need for regular launches.
Data encryption
The Data encryption feature guide provides guidance on how to support compression, encryption, and other data handling by implementing custom converters and codecs.
- Use a custom Payload Codec: Create a custom PayloadCodec implementation and define your encryption/compression and decryption/decompression logic.
- Use a custom Payload Converter: A custom data converter can be set via the
DataConverter
option when creating a client.
Durable Timers
The Durable Timers feature guide shows how to use Timers and sleep within Workflows.
- Sleep: A Timer lets a Workflow sleep for a fixed time period.
Continue-As-New
The Continue-As-New feature guide shows how to 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.
Child Workflows
The Child Workflows feature guide shows 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.
Asynchronous Activity
The Asynchronous Activity feature guide shows how to complete Activities asynchronously.
- Asynchronous Activity: Asynchronous Activity Completion enables the Activity Function to return without the Activity Execution completing.