Skip to content

0.1.0-beta2

Compare
Choose a tag to compare
@cretz cretz released this 30 Oct 16:53
· 36 commits to main since this release
5b10051

Get from NuGet and read the README

⚠️ This is a beta release.

Highlights

Advanced Metrics Support

The Rust core that the .NET SDK uses has always provided metrics and a way to export via OpenTelemetry or Prometheus. This release improves the exposure of these metrics in few ways:

First, a MetricMeter property has been added to TemporalRuntime, ActivityExecutionContext, and Workflow for those wanting to record their own metrics using the core-based metrics (but it is often still more desirable to use one's own metrics implementation). The Workflow.MetricMeter has logic to ignore metrics recorded inside workflows.

Second, a Temporal runtime is the overall object created to power Temporal features (if not using the default) and its MetricOptions now have a CustomMetricMeter which accepts a ICustomMetricMeter implementation. If set, this interface will be used for all core-based metrics.

Finally a new extension project, Temporalio.Extensions.DiagnosticSource, has been created which contains an ICustomMetricMeter implementation that sends core metrics to an underlying System.Diagnostics.Metrics.Meter implementation. So with this extension, users can have all internal SDK metrics flow through traditional .NET metrics utilities, even though they originate in Temporal's Rust core.

Several Minor Additions

  • Added Workflow.CurrentHistoryLength, Workflow.CurrentHistorySize, and Workflow.ContinueAsNewSuggested to help developers understand history sizes and when to continue as new
  • Added WorkflowInfo.LastFailure and WorkflowInfo.LastResult for use by workflow retrying and schedules
  • Added TemporalConnectionOptions.KeepAlive to support client keep alive, and defaulted it to 30s interval with 15s timeout
  • Added WorkflowOptions.StartDelay to add a delay to the start of a workflow
  • Added experimental support for workflow update which is only available in bleeding edge open source server environments

💥 BREAKING CHANGES

Only a couple of barely visible, rarely used things were changed this release:

  • Static methods on for creating activity definitions Temporalio.Activities.ActivityDefinition removed cache boolean parameter since caching of activity definitions is no longer that valuable (#118)
  • Removed Temporalio.Runtime.TelemetryOptions.Tracing property and associated class since this was only for advanced internal support for core tracing (i.e. not related to actual Temporal/workflow tracing)

Specific Changes

2023-07-25 - 0cded9b - Remove activity definition cache (#118)
2023-07-25 - 54e61f1 - Clarify in README clients can use the extension project (#120)
2023-07-25 - 612d4ca - Use DI logger factory in worker service and DI clients (#119)
2023-08-07 - 9b92709 - Add history info for workflow (#123)
2023-08-21 - 5b559d5 - Update core and tonic (#127)
2023-08-25 - 9d56fe8 - Improved .NET metrics support (#129)
2023-09-22 - 5cf7a4a - Expose LastFailure and LastResult from WorkflowInfo (#136)
2023-10-06 - 516c72b - Advanced .NET metrics support (#137)
2023-10-09 - ab4ded4 - Client keep alive support (#138)
2023-10-20 - 1cde5c9 - Add missing gRPC calls (#144)
2023-10-24 - bd986d7 - Workflow start delay (#146)
2023-10-25 - ef02df3 - Workflow update (#142)