042-decision-service-and-remote-seams
Decision service sidecar and remote context and sink protocols (amends 010)
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
depends on
- 001-boundaries-and-authority
- 002-decision-contract-and-pure-core
- 003-runtime-execution-and-evidence
- 004-evaluation-and-replay
- 009-remote-adapter-protocol
- 010-integrations
- 017-general-runtime-optimization
- 020-remote-protocol-refinements
- 027-node-and-wasm-bindings
- 028-opentelemetry-evidence-sink
- 029-evaluation-repeatability
- 031-public-api-and-release-family
- 032-evidence-quality
- 034-parameterized-definitions
- 036-mid-plan-acquisition
depended on by
amends
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
- 042: Decision service sidecar and remote context and sink protocols (amends 010)
- 1. Purpose
- 2. Territory
- 2.1 Binding principles of #76
- 2.2 Relation to spec 010 and the binding-record gate
- 3. Behavior
- 3.1 Service surfaces and listeners
- 3.2 Caller authentication and the principal handle
- 3.3 Plan registration and signed bundles
- 3.4 Running decisions
- 3.5 Admission, refusals and limits
- 3.6 Idempotency, lookup and cancellation
- 3.7 Streaming
- 3.8 Replay, evaluation and explanation
- 3.9 The gRPC transport
- 3.10 The remote context protocol
- 3.11 The remote sink protocol
- 3.12 Bounded callback seams
- 3.13 Health, readiness and metrics
- 3.14 Graceful shutdown
- 3.15 Configuration and service identity
- 3.16 Container image and binary
- 3.17 Shared conformance
- 3.18 Dependency boundaries
- 3.19 Compatibility
- 4. Out of scope
- 5. Observable negative cases
- Acceptance
- Verification
- Implementation record
- Decisions at approval
Frozen anchors
No frozen anchors declared.