Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Public API map

This map is an orientation aid, not a substitute for rustdoc. It shows where public concepts live and which feature boundaries introduce optional dependencies.

poise-core

Candidate model

APIRole
CandidateBorrowed policy view of identity, weight, load, status, eligibility
BackendConcrete candidate with application data
StatusReady, draining, or unavailable administrative state
WeightValidated nonzero integer capacity ratio
SelectionValidated policy result wrapper around a slice index
PickErrorTyped no-candidate and arithmetic failures

Policy contract

APIRole
Policy<C, Context>Mutable selection operation
PolicyExt::chooseConvenience lookup returning a candidate borrow
Random, WeightedRandomStateless stochastic spread
RoundRobin, SmoothWeightedRoundRobinStateful cyclic spread
LeastLoaded, PowerOfTwoChoicesLoad-aware choice
Rendezvous, WeightedRendezvousTable-free affinity
BoundedLoadRendezvousAffinity with prospective capacity spillover
RingHash, MaglevCached affinity structures
PriorityWeightedRandomPriority, spillover, and panic
LocalityWeightedRandomPriority plus locality health weighting

Feedback and load

APIRole
OutcomeSuccess, failure, overload, cancellation
LoadMetricComparable load measurement
InFlight, InFlightGuardAtomic concurrency accounting
PeakEwma, PeakEwmaGuardLatency-and-concurrency estimator
LoadScoreOrdered validated score representation

Probe observations

APIRole
ProbePoolBounded, self-expiring pool of out-of-band replica observations
ProbePoolConfig, ProbePoolConfigErrorCapacity, reuse, and age bounds
ProbeReadingOne reported queue depth and observed latency
ProbeEntryA retained observation and its remaining reuse budget
ProbeDecisionA selection against a candidate slice, and the observation behind it
ProbeDecisionErrorAbsent, rejected, and out-of-bounds decision outcomes

poise-discovery

APIRole
DirectorySingle-writer transactional membership state
Change, Effect, AppliedReconciliation input and report
RevisionMonotonically increasing snapshot version
Discovered, MembershipCandidate wrapper and lifecycle
Snapshot<T>Immutable revisioned state
snapshot_channelSingle-publisher, multi-reader channel
SnapshotPublisherAtomic publication boundary
SnapshotReader, SnapshotStreamCoalescing subscribers

poise-health

APIRole
HealthSignal, HealthCheckedComposable candidate eligibility
PassiveHealth, CircuitPermitEpoch-safe passive circuit
CircuitConfig, CircuitSnapshotCircuit configuration and observation
ActiveHealth, ActiveProbeExecutor-neutral scheduled health state
ActiveHealthConfig, ActiveSnapshotProbe thresholds and observation
OutcomeWindow, OutcomeStatsBounded recent result history
PenaltyScoreLoad-compatible recent-failure penalty
OutlierDetector, OutlierReportPure group-relative analysis

poise-tower

APIRole
Endpoint<C, S, L>Candidate, Tower service, and generation load tracker
BalanceReadiness-aware policy-driven Tower service
BalanceErrorSelection, readiness, tracker, and service failures
RequestContext, UseRequestBorrowed request projection for affinity
LoadTracker, LoadGuardDispatch-time reservation contract
DiscoveryBalanceTransactional snapshot-to-endpoint reconciler
EndpointFactory, InFlightFactoryService-generation construction
StreamingDiscoveryBalanceDiscovery-driven Tower service
StreamingConfig, StreamEndPolicyFairness and terminal behavior

Enable the discovery feature for reconciliation APIs.

poise-tokio

APIRole
TokioProbeAsync probe operation
ActiveHealthRunnerTimer and timeout adapter
ProbeRunnerConfig, ProbeTimeoutPolicyRuntime-specific probe behavior
next_snapshot, wait_for_revisionAllocation-free async discovery waits

Features health and discovery are independently selectable.

poise-observe

APIRole
Observer, NoopObserver, FanoutPortable event sink composition
ObservedPolicySelection decorator
AttemptRAII attempt lifecycle
Metrics, MetricsSnapshotFixed-cardinality cumulative counters
DecisionEvent, AttemptEventStructured portable events
TracingObserver, TracedPolicyOptional tracing integration
TowerObserverOptional readiness-failure adapter

The tracing and tower features are off by default.

Documentation layers

  • This book explains contracts, composition, and operations.
  • Crate-level rustdoc is the authoritative signature and feature reference.
  • Source tests are executable examples of edge behavior.
  • Focused policy chapters define arithmetic and churn guarantees.
  • The live showcase reports verification provenance, not API documentation.