sequenceDiagram

participant ServerBuilder
participant Accept
participant WorkerClient
participant Worker
participant Dispatcher

ServerBuilder->>Accept: start(socks, workers)

Note over Accept: accept Connections
loop poll connections on sockets
	activate Accept
	Accept-->>Accept: poll() --> Conn
	Note over Accept: backpressure logic
	Accept->>WorkerClient: send(Conn)
end
deactivate Accept

Note over Worker: process Connections
loop Worker as Future::poll
	activate Worker
	Worker->>WorkerClient: rx.poll_next()
	Note over Worker: Service factories
	Worker-->>Dispatcher: new(stream)
end
deactivate Worker

Note over Dispatcher: process Requests
loop Dispatcher::poll
	activate Dispatcher
	Dispatcher-->>Dispatcher: Dispatch requests
end
deactivate Dispatcher
