AppSurface Flow
Source of truth
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.