Emulator Provider

January 23, 2026 · View on GitHub

The Emulator provider (LocalOrchestrationService) is an in-memory implementation for local development and testing. It requires no external dependencies and is ideal for quick iteration.

Installation

dotnet add package Microsoft.Azure.DurableTask.Emulator

Usage

using DurableTask.Core;
using DurableTask.Emulator;
using Microsoft.Extensions.Logging;

using ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
{
    builder.AddConsole();
    builder.SetMinimumLevel(LogLevel.Information);
});

// Create in-memory service
var service = new LocalOrchestrationService();

// Create worker and client
var worker = new TaskHubWorker(service, loggerFactory);
var client = new TaskHubClient(service, loggerFactory: loggerFactory);

// ...

Limitations

LimitationDescription
In-memory onlyAll state is lost when process exits
Single processCannot share state across processes

Transitioning to Production

When moving from emulator to production, replace LocalOrchestrationService with your chosen provider. The rest of your code remains the same:

// Development
IOrchestrationService service = new LocalOrchestrationService();

// Production (example: Azure Storage)
IOrchestrationService service = new AzureStorageOrchestrationService(settings);

Next Steps