Expand description
Request pipelining for efficient batch operations.
This module provides request pipelining to batch multiple API requests efficiently, reducing latency and improving throughput when making many requests to the coordinator or other services.
§Features
- Batching: Group multiple requests into batches
- Concurrency Control: Limit concurrent requests
- Priority Queues: Prioritize critical requests
- Automatic Retry: Retry failed requests in batch
- Request Coalescing: Merge duplicate requests
- Statistics Tracking: Monitor pipeline performance
§Example
use chie_core::request_pipeline::{RequestPipeline, PipelineConfig, PipelineRequest};
use std::sync::Arc;
let config = PipelineConfig {
max_batch_size: 50,
max_concurrent: 10,
batch_timeout_ms: 100,
..Default::default()
};
let pipeline = Arc::new(RequestPipeline::new(config));
// Submit requests to the pipeline
let request = PipelineRequest::new("submit_proof", vec![1, 2, 3]);
let response = pipeline.submit(request).await?;
println!("Response: {:?}", response);Structs§
- Pipeline
Config - Configuration for the request pipeline.
- Pipeline
Request - A single request in the pipeline.
- Pipeline
Response - Response from a pipelined request.
- Pipeline
Stats - Statistics for the request pipeline.
- Request
Pipeline - Request pipeline for batching and concurrent execution.
Enums§
- Pipeline
Error - Errors that can occur during request pipelining.
- Request
Priority - Priority level for requests.