Problem 13 of 15 in the Harnessing Agentic AI Systems series — read the index for the framing. Previous: Orchestrator-Worker Pattern · Next: Sequential Pipeline Routing Pattern.
The Problem — Coordinating through shared state without corruption
Multiple agents need a shared working memory, and unsynchronized writes corrupt it. The board must be shared and safe at once.
| Field | P14 — Blackboard (Shared Workspace) (pattern) | A12 — State Race Conditions (anti-pattern) |
|---|---|---|
| Forces / Smell | Unified schema vs per-agent scopes; parallel writes vs ordered consistency; coordinator vs choreography. | Async multi-agent writes to shared memory with no transactional locks; corruption that appears "random." |
| Solution / Anti-solution | Connect disjointed agents to a unified state schema where the harness coordinates simultaneous data writes and events. | "It usually works" — hope as a concurrency strategy. |
| Consequences / Failure | Choreography without an orchestrator — "No orchestrator. Just state." Conflicts detected at write time, not merge time (GitButler's virtual branches). | Two agents writing the same ledger, one overwriting the other's checkpoint — the blackboard without its harness. |
| Tradeoffs / Refactoring | Shared state is shared risk; the board fights per-agent scope; the resolution is explicit scope discipline — an ownerless board is a tragedy of the commons for state. | P7 with the durability discipline: writes through a single ordered log, exactly-once, idempotency keys, transactional ownership. |
| Evidence | CrewAI's Flows (docs); the durable-daemons choreography (definition); GitButler's collaboration patterns (Buzz). | Temporal's event-sourced, deterministic execution (docs). |
| Related | Composes with P7 (the board must be snapshotable) and P10 (the board's slow writers). | Is the absence of P7 and P14's ownership discipline; the async risk of P10. |
Discussion
The blackboard is choreography made concrete — shared state with no orchestrator. Shared state is shared risk: the board concentrates races, and its durability decides whether corruption is recoverable, which is why snapshots (P7) compose with it. The fix is the durable-daemons discipline: "no RPC. No message bus. No central orchestrator" is only safe when the shared state itself is the coordination mechanism, and the coordination mechanism must be transactional.
Key Insight
Shared state is shared risk. Choreography without an orchestrator requires transactional ownership — writes through a single ordered log, exactly-once, idempotency keys — and the ownership question, which state is shared and who owns the boundary, is the least-solved governance problem in the catalog.
References
CrewAI Flows (docs); Temporal (docs); archive: durable daemons series, Buzz and the Identity Problem, always-on agents.