# @suaveplan/network-transport-standby - Pre-emptive WebRTC standby transport: warm-slot connection pool with health scoring and auto-reconnect for sub-100ms peer attach ## Summary Pre-emptive WebRTC standby transport for `@suaveplan/network`. Maintains a pool of warm `RTCPeerConnection`-like slots so peer attach completes in ~10 ms instead of the typical 1-3 s ICE/DTLS handshake. ## Documentation tree - [errors](./src/errors/errors.md) — _(no submodules)_ - [errors](./src/errors/errors.md) — _(no submodules)_ - [health](./src/health/monitor.md) — _(no submodules)_ - [monitor](./src/health/monitor.md) — _(no submodules)_ - [otel](./src/otel/otel.md) — _(no submodules)_ - [otel](./src/otel/otel.md) — _(no submodules)_ - [plugin](./src/plugin/plugin.md) — _(no submodules)_ - [plugin](./src/plugin/plugin.md) — _(no submodules)_ - [pool](./src/pool/pool.md) — _(no submodules)_ - [pool](./src/pool/pool.md) — _(no submodules)_ - [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_ - [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_ - [transport](./src/transport/transport.md) — _(no submodules)_ - [transport](./src/transport/transport.md) — _(no submodules)_ - [types](./src/types/types.md) — _(no submodules)_ - [types](./src/types/types.md) — _(no submodules)_ - [errors](./src/errors/errors.md) — _(no submodules)_- [health](./src/health/monitor.md) — _(no submodules)_- [monitor](./src/health/monitor.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [health](./src/health/monitor.md) — _(no submodules)_- [monitor](./src/health/monitor.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [health](./src/health/monitor.md) — _(no submodules)_- [monitor](./src/health/monitor.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [health](./src/health/monitor.md) — _(no submodules)_ - [monitor](./src/health/monitor.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_ - [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_ - [plugin](./src/plugin/plugin.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_ - [pool](./src/pool/pool.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_ - [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_ - [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_ - [types](./src/types/types.md) — _(no submodules)_ ## Module map - [`src/types/types.md`](./src/types/types.md) — shared types. - [`src/errors/errors.md`](./src/errors/errors.md) — 6-code error registry + `NetStandbyError`. - [`src/health/monitor.md`](./src/health/monitor.md) — EMA-smoothed composite health scorer. - [`src/otel/otel.md`](./src/otel/otel.md) — gauge, counters, histogram + span helper. - [`src/reconnect/reconnect.md`](./src/reconnect/reconnect.md) — exponential-backoff retry loop over `@suaveplan/retry`. - [`src/pool/pool.md`](./src/pool/pool.md) — connection-pool engine. - [`src/transport/transport.md`](./src/transport/transport.md) — `Transport` adapter implementing `@suaveplan/network`'s contract. - [`src/plugin/plugin.md`](./src/plugin/plugin.md) — `NetworkPlugin` wrapper. ## At a glance ```ts import { NetworkNode } from "@suaveplan/network"; import { StandbyPlugin } from "@suaveplan/network-transport-standby"; const node = new NetworkNode(); node.use( new StandbyPlugin({ pool: { config: { minSlots: 4, maxSlots: 8, warmupTimeoutMs: 5_000, healthCheckIntervalMs: 30_000, qualityThreshold: 50, maxReconnectAttempts: 3, reconnectBaseDelayMs: 1_000, reconnectMaxDelayMs: 30_000, }, rtcFactory: async (slotId) => makeRtcConnection(slotId), }, }) ); await node.start(); ```