Skip to content

Document embedded .NET workflow engine options and Azure cost gates - #861

Draft
AndreaCuneo with Copilot wants to merge 2 commits into
masterfrom
copilot/research-workflow-engine-embed-dotnet
Draft

Document embedded .NET workflow engine options and Azure cost gates#861
AndreaCuneo with Copilot wants to merge 2 commits into
masterfrom
copilot/research-workflow-engine-embed-dotnet

Conversation

Copilot AI commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Research the trade-offs for embedding durable, code-first workflows in ASP.NET Core while reusing Azure SQL, Service Bus, Storage, and App Service infrastructure. Cover durable waits, external events, fork/join, recovery, browsing, persistence, and workflow versioning.

  • Engine evaluation

    • Compare Elsa, Durable Task/Functions, Temporal, Workflow Core, Dapr, Orleans, Stateless, Hangfire, Quartz, Rebus, MassTransit, Wolverine, Logic Apps, and Azure primitives.
    • Include code-first workflow examples and compatibility/versioning guidance.
    • Identify Elsa as the strongest embedded SQL-backed candidate and Durable Functions MSSQL as the strongest SQL-oriented Functions option.
  • Durable Task Scheduler constraints

    • Document Consumption limitations: no HA/multi-zone support, 500 actions/sec ceiling, and 30-day retention.
    • Document Dedicated HA requirements: three CUs minimum.
    • Capture the indicative planning cost of approximately €1,500/month for three CUs at €500/CU, excluding compute and dependent Azure services.
    • Link official billing and pricing references.
  • Cost and architecture comparison

    • Compare scheduler, compute, persistence, messaging, licensing, HA, and operational ownership across alternatives.
    • Identify lower-cost paths using Durable Functions with Azure Storage or MSSQL providers.
    • Distinguish true in-process hosting, co-resident Function Apps, and external execution platforms.
  • Reliability patterns

    • Specify optimistic concurrency, idempotent fork/join completion, correlation-keyed external events, inbox/outbox processing, durable timers, projections, and version-safe rolling deployments.

Representative durable approval pattern:

await Task.WhenAll(notifications);

var approval = context.WaitForExternalEventAsync<bool>("Approval");
var timeout = context.CreateTimer(
    context.CurrentUtcDateTime.AddDays(7));

var completed = await Task.WhenAny(approval, timeout);

Copilot AI and others added 2 commits August 11, 2026 07:00
Co-authored-by: AndreaCuneo <5227688+AndreaCuneo@users.noreply.github.com>
Co-authored-by: AndreaCuneo <5227688+AndreaCuneo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants