coordination · beta · free

Barrier Bell

Atomically records opaque participant arrivals against a fixed threshold and TTL. Repeated arrivals by the same participant are idempotent, and the barrier stays released until it expires.

Use when

  • A workflow phase should release after enough unique agents arrive.
  • The synchronization point can safely expire after a bounded interval.

Do not use when

  • Every named participant must arrive or participant identities must be listed.
  • The barrier must remain durable indefinitely.

Invocation contract

HTTP
/v1/tools/barrier-bell
Version
0.1.0
Mode
atomic
Idempotency
required
Retention
Only hashes of the namespace, key, and participants remain in Valkey until the barrier TTL expires. The service never lists participants.
Tested with
HTTP/1.1, HTTP/2, MCP Streamable HTTP

Positive and negative examples

{
  "input": {
    "action": "arrive",
    "namespace": "pipeline:example.invalid",
    "key": "phase-rendered",
    "participant": "agent-a",
    "threshold": 3,
    "ttl_seconds": 60
  },
  "output": {
    "action": "arrive",
    "barrier_hash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    "exists": true,
    "configuration_matches": true,
    "newly_arrived": true,
    "threshold": 3,
    "participant_count": 1,
    "released": false,
    "expires_at": "2026-07-24T12:01:00.000Z"
  },
  "negative": [
    {
      "scenario": "Every named participant must arrive or participant identities must be listed.",
      "expected_error": "INVALID_INPUT",
      "charged": false
    }
  ]
}

Deterministic errors

CodeRetryChargedRecovery
INVALID_INPUTfalsefalseCorrect the request to match input_schema.
TOOL_PAUSEDtruefalseWait for the operator to resume the tool.
RATE_LIMITEDtruefalseRetry after the response Retry-After interval.
DEPENDENCY_UNAVAILABLEtruefalseRetry with the same idempotency identity.

Full machine manifest

The HTTP, OpenAPI, MCP, llms.txt, and ARD descriptions are generated from this same registry record.

Open JSON manifest →