FlowDrop Workflow Specification 1.0-draft

Concurrent buffer appends are serialized, and never fatal

Two branches appending at once would each read the buffer before the other's turn and write back a version missing it. Serializing the read-modify-write prevents that, but losing a turn is worse than a rare interleave.

The rule

Normative: this is the rule
  1. The read-modify-write of a conversation buffer is serialized per storage scope (scope, scope identifier and key together), so concurrent appends queue instead of overwriting one another.
  2. The wait is bounded: an append that still cannot take its turn proceeds unserialized and emits a warning rather than failing or discarding the turn.
  3. Serialization taken is always released.
  4. Nothing more is claimed: not storage-level atomicity, and no protection against a writer that does not go through this path.
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · MEM-12 · changed in spec 1.0