Module middleware

Module middleware 

Source
Expand description

Middleware system for query interception.

This module provides a flexible middleware system that allows intercepting queries before and after execution. Use cases include:

  • Logging - Log all queries and their execution times
  • Metrics - Collect query performance metrics
  • Caching - Cache query results
  • Authentication - Add tenant/user context to queries
  • Retry logic - Automatically retry failed queries
  • Circuit breaking - Prevent cascade failures

§Example

use prax_query::middleware::{Middleware, MiddlewareStack, LoggingMiddleware};

// Create a middleware stack
let mut stack = MiddlewareStack::new();
stack.push(LoggingMiddleware::new());
stack.push(MetricsMiddleware::new());

// Use with an engine
let engine = engine.with_middleware(stack);

Structs§

LoggingMiddleware
Middleware that logs queries.
MetricsMiddleware
Middleware that collects query metrics.
MiddlewareBuilder
Builder for creating middleware stacks.
MiddlewareChain
A chain of middleware that processes queries.
MiddlewareStack
A stack of middleware with builder pattern.
Next
The next handler in the middleware chain.
QueryContext
Context passed through the middleware chain.
QueryMetadata
Metadata about a query.
QueryMetrics
Collected metrics for queries.
QueryResponse
Response from a query execution.
RetryConfig
Configuration for retry behavior.
RetryMiddleware
Middleware that automatically retries failed queries.
TimingMiddleware
Middleware that measures query execution time.
TimingResult
Result of timing a query.

Enums§

LogLevel
Log level for query logging.
QueryPhase
The current phase of query execution.
QueryType
The type of query being executed.

Traits§

MetricsCollector
Interface for collecting metrics.
Middleware
Middleware trait for intercepting queries.

Type Aliases§

BoxFuture
A boxed future for async middleware operations.
MiddlewareResult
Result type for middleware operations.