Module request_pipeline

Module request_pipeline 

Source
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§

PipelineConfig
Configuration for the request pipeline.
PipelineRequest
A single request in the pipeline.
PipelineResponse
Response from a pipelined request.
PipelineStats
Statistics for the request pipeline.
RequestPipeline
Request pipeline for batching and concurrent execution.

Enums§

PipelineError
Errors that can occur during request pipelining.
RequestPriority
Priority level for requests.