Skip to main content

Module streaming

Module streaming 

Source
Expand description

Streaming operation types and concurrent executor.

StreamExecutor processes a stream of (idx, Result<Operation, E>) tuples concurrently within a bounded window. Errors in the input stream pass through unchanged; successful operations are executed against the backend directly, with [tokio::spawn] for panic isolation and run-to-completion guarantees.

§Permit Acquisition

Streaming / batch operations are subject to the service’s concurrency limiter. They count as “bulk” operations, which are capped at a lower limit than regular operations. This ensures a large bulk request doesn’t automatically bring the service to its limits and leaves room for regular requests.

The regular acquire timeout applies: Operations that cannot acquire a permit within the configured queue timeout fail with Error::AtCapacity.

§Concurrency Model

StreamExecutor::execute uses buffer_unordered with the bulk budget as the concurrency bound. The input stream is pulled lazily and results are yielded in completion order. Each operation is wrapped in a [tokio::spawn] for panic isolation: a panic in one operation surfaces as Error::Panic for that item and does not affect the others.

Structs§

Delete
A delete operation: removes an object by key.
Get
A get operation: retrieves an existing object by key.
Head
A head (metadata-only) operation: checks existence and retrieves metadata by key.
Insert
An insert operation: stores an object at the given key.
StreamExecutor
Executes streaming operations with bounded concurrency.

Enums§

OpResponse
The response of a single executed streaming operation.
Operation
A single streaming operation.