Skip to content

🧭 [SPEC] [DAPR] Dapr blackboard atomicity and concurrency hardening #415

Description

@AndreRatzenberger

Why

PR #414 can ship an initial Dapr-backed blackboard store after the public API blockers are fixed, but the deeper distributed-write semantics need a separate hardening pass. Artifact/index atomicity, TTL exceptions, encrypted backend fallbacks, and ETag conflict retries should be explicit before users rely on Dapr as a shared blackboard backend.

Scope

  • Define a Dapr blackboard guarantee matrix for transactional, TTL, encrypted, and non-transactional modes.
  • Decide when artifact data and index updates can be committed in one execute_state_transaction.
  • Document and test the weaker TTL path where artifact metadata forces a separate save_state.
  • Implement ETag conflict retries by re-reading current state before retrying.
  • Add failure-injection tests for partial writes, transaction failures, ETag conflict success/exhaustion, and reconciliation behavior.
  • Update docs and examples so durability claims match implementation.

OpenSpec

Out of Scope

  • DaprStateSessionStore
  • Dapr Pub/Sub, workflows, actors, bindings, or service invocation
  • Broad replacement of the BlackboardStore contract

Acceptance Criteria

  • Dapr docs include a clear guarantee matrix.
  • Transactional no-TTL publish can commit artifact and indexes atomically, or the design documents why not.
  • TTL/encrypted/non-transactional paths have tested and documented reconciliation semantics.
  • ETag retry behavior is wired into real read-modify-write paths and tested for success and exhaustion.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

Status
🏗 In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions