AppSurface Search
Guide

AppSurface Flow

Source of truth

View source Edit this page

Last updated

AppSurface Flow is the typed long-running process surface for AppSurface. It lets package authors describe a process as a stable graph of nodes, run that graph locally for tests and examples, then map the same node outcomes into durable orchestration decisions.

Packages

Package Use when Includes Does not include
ForgeTrust.AppSurface.Flow You need typed input/output port Flow contracts, generated-case authoring, and an in-memory runner for local testing. Outcomes including typed Activity, typed callsite/work-result contracts, one-node transition evaluator, graph builder/definition, generator, registry, passive module, and in-memory pause/resume. Durable persistence, activity execution, timers, external-event buffering, ASP.NET endpoints, Semantic Kernel, or background workers.
ForgeTrust.AppSurface.Flow.DurableTask You are adapting Flow definitions to a Durable Task host. Passive module, shared-evaluator decision runner, typed activity scheduling/result resumption, resume-event client/authorization contract, timeout/late-event mapping, and context serialization validation. Durable Task worker/client hosting, storage providers, activity executors/codecs, auth handlers, endpoints, or Semantic Kernel.
ForgeTrust.AppSurface.Workers You need durable worker claim, completion, projection-repair, and privacy-safe diagnostic contracts before choosing runtime infrastructure. Passive module, typed worker envelopes, outcome/retryability enums, projection contract, executor contract, safe metadata validation, and bounded repair requests. Durable Task hosting, EF/Postgres runtime ownership, queue runners, scheduler services, endpoints, auth handlers, UI, or Semantic Kernel.
ForgeTrust.AppSurface.Workers.DurableTask You are mapping worker contracts to Durable Task-facing orchestration decisions. Passive module, worker chain runner, schedule/wait/repair/complete/fault/retry/timeout decisions, and retry policy metadata for host translation. Durable Task worker/client hosting, storage providers, EF/Postgres runtime ownership, endpoints, auth handlers, UI, or Semantic Kernel.

Start with the generated authoring example when you want generated outcome cases, typed input/output ports, inferred graph mapping for unambiguous ports, and build-time graph safety. Use the low-level local example when you want to see the node/runtime contract directly. For durable hosting, use the package chooser to select the PostgreSQL-native runtime or the optional Durable Task adapter rather than coupling Flow definitions to one host.

Use ForgeTrust.AppSurface.Workers when the process is better described as a durable worker chain with a side-effecting executor and a visible projection to repair. Add ForgeTrust.AppSurface.Workers.DurableTask only when that chain should run through Durable Task orchestration decisions. Flow nodes remain transition-only in every host: provider effects belong behind typed Activity or worker executor boundaries.