Choosing a Backend

January 23, 2026 · View on GitHub

The Durable Task Framework (DTFx) supports multiple backend storage providers. This guide helps you choose the right one for your needs.

Recommendation: Durable Task Scheduler

For most new projects, we recommend the Durable Task Scheduler—a fully managed Azure service that eliminates infrastructure management and provides the best developer experience.

Provider Comparison

FeatureDurable Task SchedulerAzure StorageMSSQLService BusService FabricEmulator
Type⭐ Managed serviceSelf-managedSelf-managedSelf-managedSelf-managedIn-memory
Production ready✅ Yes✅ Yes✅ Yes✅ Yes✅ Yes❌ No
Azure support SLA✅ Yes❌ No❌ No❌ No❌ No❌ No
InfrastructureNone requiredStorage accountSQL Server databaseService Bus namespaceService Fabric clusterNone
ThroughputVery highModerate+Moderate+ModerateUnknownN/A
LatencyLowModerateLowModerate+UnknownVery low
Built-in dashboard✅ Yes❌ No❌ No❌ No❌ No❌ No
Managed identity✅ Yes✅ Yes✅ Yes✅ YesN/AN/A
Local emulator✅ DockerN/A✅ SQL ServerN/AN/A✅ Built-in
Cost modelFixed monthly or per-operationStorage transactionsDatabase DTUs/vCoresMessaging unitsCluster nodesFree

When to Use Each Provider

Best for:

  • ✅ New projects and greenfield development
  • ✅ Production workloads requiring enterprise support
  • ✅ Teams that want to minimize operational overhead
  • ✅ High-throughput scenarios
  • ✅ Applications needing built-in monitoring

Considerations:

  • Requires Azure subscription
  • Cost based on operations (see pricing)

👉 Get started with Durable Task Scheduler


Azure Storage

Best for:

  • ✅ Existing Azure Storage deployments
  • ✅ Cost-sensitive workloads with moderate throughput
  • ✅ Scenarios requiring data residency control
  • ✅ Teams already managing Azure Storage infrastructure

Considerations:

  • Throughput limited by Azure Storage transaction limits
  • Requires management of storage account, queues, tables, and blobs
  • No built-in monitoring dashboard

👉 Get started with Azure Storage


MSSQL (Microsoft SQL Server)

Best for:

  • ✅ Non-Azure or hybrid deployments
  • ✅ Teams with existing SQL Server expertise
  • ✅ Scenarios requiring direct database queries against orchestration state
  • ✅ Environments with strict BCDR requirements

Considerations:

  • Requires management of SQL Server database
  • State is stored in indexed tables with stored procedures for direct querying
  • Available for Azure SQL Database, SQL Server, or any compatible MSSQL database

👉 Get started with MSSQL


Service Bus

Best for:

  • ✅ Existing Service Bus deployments
  • ✅ Low(er)-latency message delivery requirements

Considerations:

  • Requires management of Service Bus namespace
  • Tracking store requires separate Azure Storage account

👉 Get started with Service Bus


Service Fabric

Best for:

  • ✅ Existing Service Fabric clusters
  • ✅ Integration with Service Fabric stateful services

Considerations:

  • Requires Service Fabric cluster management
  • Tightly coupled to Service Fabric ecosystem

👉 Get started with Service Fabric


Emulator

Best for:

  • ✅ Local development and testing
  • ✅ Unit tests and integration tests
  • ✅ Learning and experimentation

Considerations:

  • In-memory only—data is lost on restart
  • Not suitable for production use
  • Single-process only

👉 Get started with Emulator


Netherite ⚠️ Deprecated

Warning: Netherite is being deprecated and is not recommended for new projects.

Netherite is an ultra-high performance backend developed by Microsoft Research that uses Azure Event Hubs and Azure Page Blobs with FASTER database technology.

Considerations:

  • ⚠️ Being deprecated—not recommended for new projects
  • More complex infrastructure requirements (Event Hubs + Azure Storage)
  • Consider migrating to Durable Task Scheduler for similar performance characteristics

👉 Netherite GitHub Repository


Migration Between Providers

Each provider stores orchestration state differently, so migrating between providers requires:

  1. Completing or terminating all running orchestrations
  2. Reconfiguring the application with the new provider
  3. Restarting orchestrations from scratch

There is no built-in state migration tool between providers.

Need Help Deciding?

See Support for more information about getting help.