HomeReadTools deskAzure Durable Functions: Mastering Orchestrators, Activities, and Entities
Tools·May 22, 2026

Azure Durable Functions: Mastering Orchestrators, Activities, and Entities

This review dissects Azure Durable Functions' three core forms—Orchestrators, Activities, and Entities—examining their practical application, common pitfalls, and optimal use cases for stateful…

This review dissects Azure Durable Functions' three core forms—Orchestrators, Activities, and Entities—examining their practical application, common pitfalls, and optimal use cases for stateful serverless workflows.

TL;DR

Best for: Complex, long-running serverless workflows requiring state management, such as payment retries, multi-step approvals, or actor-model stateful services, particularly when using Node.js SDK v3+ or .NET isolated worker. Skip if: Simple, stateless, queue-triggered functions suffice, or if you are on Python and heavily rely on entity support, which is noted as lagging. Bottom line: Azure Durable Functions effectively solves state management in serverless environments, but requires a clear understanding of its distinct forms to avoid common pitfalls.

METHODOLOGY

This v0 review draws on the founder's published claims at https://dev.to/ericwoooo_kr/the-three-durable-function-forms-orchestrators-activities-and-entities-with-real-code-57kk, accessed 2026-05-22. We analyze the author's practical insights into Azure Durable Functions, specifically focusing on the Node.js SDK v3+ and .NET isolated worker model, with a note on Python SDK v1.2.x. The review covers the described functionality of Orchestrator, Activity, and Entity functions, the author's identified "gotchas" from production experience, and guidance on form selection. This review does not include independent performance benchmarks, long-term workflow stability tests, or comprehensive coverage of all edge cases. Update cadence: re-tested when claims diverge from observed behavior or when significant SDK updates are released.

WHAT IT DOES

The article describes Azure Durable Functions as a solution for managing state in serverless environments, specifically addressing the "cron job graveyard" problem where stateless functions, blob storage, and timers lead to race conditions and lack of visibility. It breaks down Durable Functions into three core forms: Orchestrators, Activities, and Entities, emphasizing that each serves a distinct purpose.

Long-running sequential logic

Orchestrator functions define the workflow. They are the "brains" that sequence calls to activity functions, manage retries, and handle external events. The author notes that orchestrators must be deterministic, a common warning, but focuses on how they enable complex, long-running processes to "remember things" across invocations without manual state management.

Units of work

Activity functions are the individual, stateless tasks within a durable workflow. They perform the actual work, such as making an API call, processing data, or interacting with a database. Orchestrators invoke activity functions, and their results are then processed by the orchestrator. This separation of concerns keeps the orchestrator lean and focused on workflow logic.

Stateful actors

Entity functions are highlighted as the most misunderstood form. Unlike orchestrators that sequence work, entities are stateful actors designed to own state. They are durable objects that can be read from, updated, and signaled. The author emphasizes that entities are not a niche edge case but can be the primary form for production code, especially for scenarios requiring consistent state across multiple operations, such as managing a counter or a user profile.

Combining the forms

The article promises a "real workflow example" putting all three together, though the code itself is not provided in the excerpt. The core idea is that orchestrators coordinate activities, and both can interact with entities to manage shared, durable state. The author notes specific SDK versions: Node.js SDK v3+ and the .NET isolated worker model are well-supported, while Python SDK v1.2.x has improved async support but still lags in entity support.

WHAT'S INTERESTING / WHAT'S NOT

The most interesting aspect of this analysis is the author's explicit rejection of the common Durable Functions narrative. Most tutorials overemphasize the orchestrator/activity fan-out/fan-in pattern and relegate entities to an afterthought. This article pushes back, positioning entities as a primary, often misunderstood, form crucial for managing stateful actors. The "cron job graveyard" analogy effectively frames the core problem Durable Functions solves: the inherent difficulty of maintaining state and visibility across distributed, stateless serverless functions using ad-hoc storage and timers. This problem is pervasive in microservices architectures, and a clean solution is valuable.

What's less interesting, or rather, what the author correctly identifies as over-covered, is the basic orchestrator/activity pair. While fundamental, the common "fan-out/fan-in" example is so ubiquitous that it no longer offers novel insight. The author's focus on "gotchas" from production experience, rather than generic warnings like determinism, is a significant value add. This includes specific notes on SDK differences, such as the .NET in-process model's replay behavior and Python's lagging entity support. These details are critical for developers making technology choices, moving beyond marketing claims to practical implementation realities. The article's promise of "real code" examples and specific scenarios for when not to use Durable Functions also adds pragmatic value, countering the tendency to over-engineer with complex tools.

PRICING

Azure Durable Functions is a feature of Azure Functions, which operates on a consumption-based pricing model within Microsoft Azure. The core service itself does not have a separate listed price. Costs are incurred based on execution time, memory usage, and the number of executions of the underlying Azure Functions, as well as associated storage and networking costs. A free tier is available, offering a generous allowance of executions and compute time per month, typically 1 million executions and 400,000 GB-s of resource consumption, before charges apply. Pricing snapshot date: 2026-05-22.

VERDICT

Azure Durable Functions is the recommended choice for indie founders and teams grappling with complex, long-running serverless workflows that demand robust state management. It excels in scenarios like multi-step payment processing, order fulfillment, or stateful actor models, where traditional stateless functions combined with ad-hoc storage lead to unmanageable "cron job graveyards." The tool's strength lies in its ability to abstract away the complexities of state, retries, and long-running orchestration. However, it is not a universal solution. Skip Durable Functions for simple, stateless tasks that can be handled by basic queue-triggered functions, as the overhead of the durable runtime is unnecessary. Furthermore, teams heavily reliant on the entity pattern should prioritize Node.js (SDK v3+) or .NET (isolated worker model) due to more mature entity support compared to the Python SDK.

WHAT WE'D TEST NEXT

Our next steps would involve setting up a reproducible test environment to validate the author's "gotchas" and SDK-specific behaviors. We would benchmark the performance overhead of Durable Functions compared to simpler queue-triggered patterns for various workflow complexities, focusing on latency and cost implications. Specifically, we would implement the payment retry workflow described by the author, comparing its stability and visibility against a manually managed state machine. We would also conduct a deep dive into the Python SDK's entity support, quantifying its "lagging" status against Node.js and .NET counterparts with concrete examples and performance metrics. Finally, we would explore the developer experience for debugging and monitoring complex durable workflows across different languages, an area often overlooked in initial reviews.

Sources · how we verified
  1. The Three Durable Function Forms: Orchestrators, Activities, and Entities (With Real Code)

Every claim ties to a primary source. See our methodology.

Reported by the Riley desk on Founderr Pulse’s Tools beat. Every factual claim is tied to a primary source and linked; anything that can’t be stood up doesn’t run. Founderr (RIKHATH LLC) is the accountable publisher and corrects in place. How we work · About · File a correction.
R
Riley

The Riley desk covers tools — what founders are building with, switching to, and abandoning. Every claim is sourced and linked. Operated by Founderr (RIKHATH LLC) See the desk →

Founderr Pulse — free & independent. The desk for people who build & back.