Protocol v2 (Current)

Agent Protocol v2 is the recommended protocol for new agent deployments. It provides enhanced features for production environments.

Key Features

FeatureDescription
Connection PoolingMaintain multiple connections per agent with load balancing
Multiple TransportsgRPC, Binary UDS, and Reverse Connections
Request CancellationCancel in-flight requests when clients disconnect
Reverse ConnectionsAgents connect to proxy (NAT traversal)
Enhanced ObservabilityBuilt-in metrics export in Prometheus format
Config PushPush configuration updates to capable agents

Documentation

PageDescription
Protocol SpecificationWire protocol, message types, and streaming
API ReferenceAgentPool, client, and server APIs
Connection PoolingLoad balancing and circuit breakers
Transport OptionsgRPC, UDS, and Reverse comparison
Reverse ConnectionsNAT traversal and agent-initiated connections
Performance BenchmarksLatency, throughput, and optimization results
Migration GuideHistorical v1 → v2 migration notes (v1 removed in 26.02_18)

Quick Start

use zentinel_agent_protocol::v2::{AgentPool, AgentPoolConfig, LoadBalanceStrategy};
use std::time::Duration;

let config = AgentPoolConfig {
    connections_per_agent: 4,
    load_balance_strategy: LoadBalanceStrategy::LeastConnections,
    request_timeout: Duration::from_secs(30),
    ..Default::default()
};

let pool = AgentPool::with_config(config);

// Add agents (transport auto-detected)
pool.add_agent("waf", "localhost:50051").await?;       // gRPC
pool.add_agent("auth", "/var/run/auth.sock").await?;   // UDS

Features

FeatureDetails
TransportUDS (binary), gRPC, Reverse Connections
Connection poolingYes (4 strategies)
Bidirectional streamingFull support
Metrics exportPrometheus format
Config pushYes
Health trackingComprehensive
Flow controlYes
Request cancellationYes