-
Notifications
You must be signed in to change notification settings - Fork 1
io-connectors: REST Output sink — write records to HTTP APIs #224
Copy link
Copy link
Open
Labels
agent-mode:implementImplement, verify, and closeImplement, verify, and closeagent-plan-firstAgent must inspect and plan before editingAgent must inspect and plan before editingagent-size:LComplex one-outcome issue; plan firstComplex one-outcome issue; plan firstarchitectureArchitectural design or structural changeArchitectural design or structural changecrate:clinker-netNetwork finite-pull Source/Output connectors (REST, SQL)Network finite-pull Source/Output connectors (REST, SQL)enhancementNew feature or requestNew feature or requestrisk:highHigh-risk correctness, security, memory, architecture, or dependency workHigh-risk correctness, security, memory, architecture, or dependency work
Description
Metadata
Metadata
Assignees
Labels
agent-mode:implementImplement, verify, and closeImplement, verify, and closeagent-plan-firstAgent must inspect and plan before editingAgent must inspect and plan before editingagent-size:LComplex one-outcome issue; plan firstComplex one-outcome issue; plan firstarchitectureArchitectural design or structural changeArchitectural design or structural changecrate:clinker-netNetwork finite-pull Source/Output connectors (REST, SQL)Network finite-pull Source/Output connectors (REST, SQL)enhancementNew feature or requestNew feature or requestrisk:highHigh-risk correctness, security, memory, architecture, or dependency workHigh-risk correctness, security, memory, architecture, or dependency work
Projects
StatusShow more project fields
Intake
Context. Clinker can already read from REST APIs as a finite-pull Source. This adds the write direction: an Output sink that pushes records to an HTTP API.
Scope.
Outputsink backend inclinker-netthat writes records to a REST endpoint (POST/PUT/PATCH/DELETE), per-record or batched, over the existing synchronousureq+ rustls transport.Outputnode.Acceptance.
Depends on: none hard (uses the existing
clinker-netREST /ureqpath).Success criteria
Performance contract
Bounded memory is the binding constraint: every allocation introduced by this work must be charged to the memory arbitrator, spillable, or fail loud with the standard memory diagnostic — nothing may grow with input cardinality outside the budget. Within that constraint, maximize records/second. When memory boundedness and throughput conflict, memory wins.