Skip to content

Add idea: Dapr durable execution on CF - #33

Open
rkoster wants to merge 2 commits into
mainfrom
ideas/dapr-durable-execution-on-cf
Open

Add idea: Dapr durable execution on CF#33
rkoster wants to merge 2 commits into
mainfrom
ideas/dapr-durable-execution-on-cf

Conversation

@rkoster

@rkoster rkoster commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

A broad-strokes concept for integrating Dapr's durable-execution primitives (Workflow, Actors, Jobs/Reminders) into CF \u2014 the area where CF has a genuine gap, since cf run-task is one-shot and CF has no workflow engine, virtual actors, or durable reminders.

Central insight: CF already owns the hardest part of Dapr's control plane \u2014 workload identity. Diego instance identity certs already carry OU=app:/OU=space:/OU=organization:, which is exactly the (app-id, namespace) tuple dapr-sentry exists to mint SPIFFE identities for. A Dapr namespace maps cleanly onto a CF org/space combo, and Dapr's namespace-scoped actor placement (v1.14+) verifies namespace claims against SPIFFE identity \u2014 which CF's certs make trustworthy by construction.

Main content is a component-by-component adopt-vs-reimplement analysis:

  • dapr-sentry \u2192 bridge to the Diego instance identity CA (no second root of trust)
  • dapr-operator \u2192 re-implement on CAPI + service bindings
  • dapr-sidecar-injector \u2192 re-implement on CF sidecars (no admission-webhook concept needed)
  • dapr-placement-server \u2192 genuinely open; see the sibling dapr-aware-gorouter idea
  • dapr-scheduler-server \u2192 adopt upstream; this is the real gap

Also covers where RFC-0055 fits (actor invocation riding identity-aware routing instead of a parallel Dapr mTLS mesh, including RFC-0055's reserved spiffe: policy-source prefix), two developer surfaces with tradeoffs (manifest flag vs. cf bind-service), and three broader adoption strategies presented as options rather than a recommendation.

… sidecar

Reframes the developer-surface section around Diego's existing Envoy
container-proxy injection (route integrity) as the precedent, rather than
the manifest sidecars: feature. Envoy is already platform-injected, already
handed the instance identity cert, and already operator-controlled - which
is exactly the shape daprd needs, and reinforces the dapr-sentry bridging
argument. Service bindings are retained for component configuration rather
than for enabling Dapr itself.
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.

1 participant