Skip to content

v1.0.0-beta.1

Choose a tag to compare

@torosent torosent released this 14 Sep 22:17
· 8 commits to main since this release
de5e238

This beta introduces a major update to the Durable Task SDK for Go, with Azure Durable Task Scheduler (DTS) as the only supported runtime, expanded workflow and entity capabilities, and new tooling and samples.

This SDK is in beta. This release contains breaking changes and is not a drop-in upgrade from v0.6.0.

Breaking changes

  • DTS-only runtime: Embedded SQLite and PostgreSQL backends and the standalone gRPC host have been removed.
  • New client and worker setup: Migrate to durabletaskscheduler.NewClient and durabletaskscheduler.NewWorker. The SDK runs your registered code while DTS owns durable state and work dispatch.
  • Go 1.25 or later is required. The module path remains github.com/microsoft/durabletask-go; no version suffix is needed for v1.

The previous backend implementation remains available at the legacy-backends tag.

Highlights

  • DTS connectivity and worker lifecycle: Connection-string configuration, Azure token authentication, independently owned client and worker connections, reconnect handling, concurrency controls, and graceful worker drain.
  • Deterministic workflow primitives: Durable coroutines, cancellation scopes, wait groups, typed event channels, selection helpers, and long-timer splitting.
  • Durable entities: Function-based, reflected, and factory-based models; calls and signals; scheduled signals; queries; and multi-entity critical sections.
  • Management and routing: Versioned task registrations, automatic work-item filters, recurring interval schedules, restart, and rewind for supported histories.
  • Payloads and observability: Custom data converters, large-payload storage including Azure Blob Storage, propagated tags and context fields, and OpenTelemetry integration.
  • History and development tools: Public history retrieval and streaming APIs, bounded history export to Blob Storage, the orchestratorvet replay-hazard analyzer, and an expanded runnable sample catalogue.

Important beta limitations

  • Cross-SDK entity locking: Go retains Python-compatible lock ordering. Do not concurrently acquire overlapping multi-entity lock sets from Go/Python and .NET orchestrations; their ordering differs and can cause deadlocks.
  • Rewind is intentionally conservative: The Go worker rejects replacement history when additional non-lifecycle events follow a failed activity or child operation. This includes handled failures followed by more work, retry timers, and some concurrent histories. See the rewind guide.

Get started

go get github.com/microsoft/durabletask-go@v1.0.0-beta.1

Start with the quick start, client and worker setup, and sample catalogue.

Full changelog: v0.6.0...v1.0.0-beta.1