diff --git a/README.md b/README.md index 00718ff..a9734b8 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,10 @@ parsing fails, the program exits. Later failures result in in emitting of an error-level log message, while successful updates of the access list result in emitting of an info-level log message. +## Architectural overview + +![Architectural overview of aquatic](./documents/aquatic-architecture-2022-02-02.svg) + ## Details on implementations ### aquatic_udp: UDP BitTorrent tracker diff --git a/documents/aquatic-architecture-2022-02-02.svg b/documents/aquatic-architecture-2022-02-02.svg new file mode 100644 index 0000000..3eb64ee --- /dev/null +++ b/documents/aquatic-architecture-2022-02-02.svg @@ -0,0 +1,3 @@ + + +
Socket worker
Socket worker
Socket worker
Socket worker
Responses
Responses
Socket worker
Socket worker
Requests
Requests
Socket
Socket
Request worker
Request worker
Request worker
Request worker
Socket
Socket
Socket
Socket
Responses
Responses
Sharded torrent state
Sharded to...
Sharded torrent state
Sharded to...
  • Establish connections, or in the case of aquatic_udp, validate source IPs
  • Receive and parse requests from peers
  • Run whitelist/blacklist checks
  • Send on announce requests to the responsible request worker
  • Split scrape requests to match state shards and send them to the request workers
  • Receive responses from the request workers, serialize them and send them to peers

Establish connections, or in the case of aqua...
  • Receive announce and scrape requests from the socket workers
  • Update torrent state if appropriate, generate responses
  • Send responses back to the sending socket workers

Receive announce and scrape requests from the...
Connection state
Connection...
Connection state
Connection...
Connection state
Connection...
Requests
Requests
Text is not SVG - cannot display
\ No newline at end of file