1
0
mirror of https://github.com/actix/actix-website synced 2024-11-27 18:12:57 +01:00
actix-website/static/img/diagrams/connection_overview.mmd
Maxim Vorobjov c1a8103cbc Architecture diagrams of HttpServer and Connection lifecycle (#148)
* add arch diagrams and menu

* fix colors for arch diagrams

* refine architecture diagrams, ready for review

* capitalize titles and add mmdc instruction

* apply code review requested changes

* Add links to accept, worker and dispatcher too
2020-01-28 20:36:35 +09:00

35 lines
765 B
Plaintext

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