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.
- Stream
Executor - Executes streaming operations with bounded concurrency.
Enums§
- OpResponse
- The response of a single executed streaming operation.
- Operation
- A single streaming operation.