042-decision-service-and-remote-seams

Decision service sidecar and remote context and sink protocols (amends 010)

Lifecycle approvedImplementation completeVerification unknownQualification unknown

An amendment of approved spec 010 (R-16), for #76 child A2 (#57). Makes the `rustev-serve` service API concrete as `rustev.serve/1`: plan registration by content identity from plain or signed plan bundles, decisions, cancellation, lookup, server-sent event streaming, offline replay, evaluation and explanation, health, readiness and OpenMetrics, served over HTTP/1.1 and HTTP/2 with JSON and over gRPC from one handler layer, on TCP and Unix domain socket listeners. Defines two new transport-neutral callback protocols with an HTTP binding, `rustev.remote-context/1` (describe, fetch, acquire, cancel and invalidation by push or poll) and `rustev.remote-sink/1` (describe and deliver with receipts), behind bounded queues with deadlines, cancellation and typed refusals when full. Adds no plan construct: every `PlanId`, run record and judgment byte is unchanged. Approved (A-39) under the 2026-10-16 delivery work order; implementation is complete (2026-11-03), after the owner approved `rustev-serve`'s spec 010 section 3.4 binding record (R-44).

Read the full pinned specification ↗

Relationships

Claimed units

  • extends
    {
      "nature": "additive",
      "spec": "002-decision-contract-and-pure-core",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-contract/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "003-runtime-execution-and-evidence",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-runtime/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "009-remote-adapter-protocol",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-remote-http/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "010-integrations",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-serve/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "directory",
        "path": "tools/rustev-boundaries/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Cargo.toml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Cargo.lock"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Makefile"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "directory",
        "path": "scripts/acceptance/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "031-public-api-and-release-family",
      "unit": {
        "kind": "directory",
        "path": "tools/rustev-release/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "027-node-and-wasm-bindings",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-node/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "027-node-and-wasm-bindings",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-wasm/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "027-node-and-wasm-bindings",
      "unit": {
        "kind": "directory",
        "path": "tools/rustev-conformance/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "006-cli-surface",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-cli/tests/common/"
      }
    }

Source headings

  1. 042: Decision service sidecar and remote context and sink protocols (amends 010)
  2. 1. Purpose
  3. 2. Territory
  4. 2.1 Binding principles of #76
  5. 2.2 Relation to spec 010 and the binding-record gate
  6. 3. Behavior
  7. 3.1 Service surfaces and listeners
  8. 3.2 Caller authentication and the principal handle
  9. 3.3 Plan registration and signed bundles
  10. 3.4 Running decisions
  11. 3.5 Admission, refusals and limits
  12. 3.6 Idempotency, lookup and cancellation
  13. 3.7 Streaming
  14. 3.8 Replay, evaluation and explanation
  15. 3.9 The gRPC transport
  16. 3.10 The remote context protocol
  17. 3.11 The remote sink protocol
  18. 3.12 Bounded callback seams
  19. 3.13 Health, readiness and metrics
  20. 3.14 Graceful shutdown
  21. 3.15 Configuration and service identity
  22. 3.16 Container image and binary
  23. 3.17 Shared conformance
  24. 3.18 Dependency boundaries
  25. 3.19 Compatibility
  26. 4. Out of scope
  27. 5. Observable negative cases
  28. Acceptance
  29. Verification
  30. Implementation record
  31. Decisions at approval

Frozen anchors

No frozen anchors declared.