pub struct Config {
pub max_concurrent_setups: usize,
pub max_direct_subscribers: usize,
pub conversation_store: Arc<dyn ConversationStore>,
pub vcon_store: Arc<dyn VconStore>,
pub message_store: Arc<dyn MessageStore>,
pub bridge_stream_deadline: Duration,
pub outbound_preparation_timeout: Duration,
pub capacity_report_interval: Option<Duration>,
}Expand description
Orchestrator configuration.
Phase-2 admission semaphore default per PERFORMANCE_PLAN.md:
max_concurrent_setups = 256 * available_parallelism().
Fields§
§max_concurrent_setups: usize§max_direct_subscribers: usizeMaximum number of distinct direct-media subscriber Connections admitted by this Orchestrator across every UCTP ingress substrate.
A subscriber with several stream routes consumes one slot. The slot is released only after its final route is removed, its Connection closes, or its Session is dropped. Relay-backed broadcast fanout is accounted separately by the relay implementation.
conversation_store: Arc<dyn ConversationStore>§vcon_store: Arc<dyn VconStore>§message_store: Arc<dyn MessageStore>P4 — message log + history pager. Default in-memory.
bridge_stream_deadline: DurationHow long bridge_connections waits for both peers’ audio streams
to appear before failing the admission check. Adapters populate
streams lazily (typically on connection.ready), so a caller
that triggers a bridge from Event::ConnectionInbound may race
the stream registration. Setting this to zero disables the wait
(strict legacy behavior).
Default raised to 5 seconds (plan §7 architectural concern #7 / D3): the previous 2 seconds was tight for cold WebTransport dials on a high-latency mobile link, where the TLS + HTTP/3 + extended-CONNECT handshake routinely exceeds 2s. 5s covers realistic mobile network jitter without holding admission for pathologically dead peers.
outbound_preparation_timeout: DurationMaximum time an outbound route may remain prepared or activating without winning its final commit acknowledgement.
A prepared route is deliberately invisible to Sessions and event consumers while an application durably records its Connection ID. Core aborts and closes the provisional adapter route when this deadline expires. The same deadline fences a hung staged activation. A finite default prevents abandoned durable-bind attempts or adapter activation futures from retaining route capacity indefinitely.
capacity_report_interval: Option<Duration>P6 — Event::CapacityReport emit cadence. None disables the
scheduler entirely.