diff --git a/README.md b/README.md index 7acffab..96134f7 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ the table above. ## Architectural overview -![Architectural overview of aquatic](./documents/aquatic-architecture-2022-02-02.svg) +![Architectural overview of aquatic](./documents/aquatic-architecture-2024.svg) ## Copyright and license diff --git a/documents/aquatic-architecture-2022-02-02.svg b/documents/aquatic-architecture-2022-02-02.svg deleted file mode 100644 index 4d00454..0000000 --- a/documents/aquatic-architecture-2022-02-02.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
Socket worker
Socket worker
Socket worker
Socket worker
Responses
Responses
Socket worker
Socket worker
Requests
Requests
Socket
Socket
Swarm worker
Swarm worker
Swarm worker
Swarm 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 access list checks
  • Send on announce requests to the responsible swarm worker
  • Split scrape requests to match state shards and send them to the swarm workers
  • Receive responses from the swarm 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 diff --git a/documents/aquatic-architecture-2024.svg b/documents/aquatic-architecture-2024.svg new file mode 100644 index 0000000..82abb29 --- /dev/null +++ b/documents/aquatic-architecture-2024.svg @@ -0,0 +1,3 @@ + + +
Swarm worker








Swarm worker...
Sharded
swarm state
Sharded...
Swarm worker








Swarm worker...
Sharded
swarm state
Sharded...
Socket worker








Socket worker...
Connection
state
Connection...
Socket worker








Socket worker...
Connection
state
Connection...
Socket worker








Socket worker...
Connection
state
Connection...
Socket
Socket
Socket
Socket
Socket
Socket

Socket worker responsibilities

- Bind to sockets with SO_REUSEPORT
- Establish connections
- Receive and parse requests
- Run access lists checks
- Send on announce requests to responsible swarm workers
- Split scrape requests and send on to responsible swarm workers
- Receive responses from swarm workers, serialize them and send them to peers

Socket worker responsibilities...

Swarm worker responsibilities

- Receive announce and scrape requests from socket workers
- Update swarm state as appropriate
- Create responses and send them to socket workers

Swarm worker responsibilities...
Architectural overview of aquatic BitTorrent trackerĀ 
Architectural overview of aquatic BitTorrent trackerĀ 
Requests
Requests
Responses
Responses
\ No newline at end of file