From f47b68f859952a761a6087b5f277ee79782b371e Mon Sep 17 00:00:00 2001 From: Eliza Weisman Date: Fri, 26 Jan 2024 10:12:12 -0800 Subject: [PATCH] docs: mermaid sequence diagram --- source/calliope/PROTOCOL.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 source/calliope/PROTOCOL.md diff --git a/source/calliope/PROTOCOL.md b/source/calliope/PROTOCOL.md new file mode 100644 index 0000000..c77e9cc --- /dev/null +++ b/source/calliope/PROTOCOL.md @@ -0,0 +1,37 @@ +```mermaid +sequenceDiagram + participant Client + participant Server as Server Interface + participant Service + Client->>Server: CONNECT (client ID, identity, Hello) + break service identity does not exist + Server->>Client: REJECT (client ID, NotFound) + end + break server's conn table is full + Server->>Client: REJECT (client ID, ConnTableFull) + end + Server-->>Service: client Hello + activate Service + break Service rejects client Hello + Service-->>Server: ConnectError + Server->>Client: REJECT (client ID, ServiceRejected, ConnectError) + end + Server->>Client: ACK (server ID, client ID) + loop until one peer disconnects + alt client has data to send + Client->>Server: DATA (client ID, server ID, body) + Server-->>Service: body message + else server has data to send + Service-->>Server: body message + Server->>Client: DATA (server ID, client ID, body) + end + end + alt client disconnects + Client->>Server: RESET (server ID, BecauseISaidSo) + Server-->>Service: close connection + else service disconnects + Service-->>Server: close connection + Server->>Client: RESET (client ID, BecauseISaidSo) + end + deactivate Service +``` \ No newline at end of file