From b8096a9e00f53fda9ce767154d4b50a5ac1fd423 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Tue, 21 Oct 2025 13:02:58 +0400 Subject: [PATCH] update --- docs/rfcs/2025-10-20-chat-relays.md | 73 +++++++++++++---------------- 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/docs/rfcs/2025-10-20-chat-relays.md b/docs/rfcs/2025-10-20-chat-relays.md index cd3c57af27..395a18b6b7 100644 --- a/docs/rfcs/2025-10-20-chat-relays.md +++ b/docs/rfcs/2025-10-20-chat-relays.md @@ -4,19 +4,18 @@ ```mermaid sequenceDiagram - participant OSMP as Owner's
SMP server - participant O as Owner - participant R as Chat relay(s) - participant RSMP as Chat relays'
SMP server(s) - participant M as Member + participant O as Owner + participant OSMP as Owner's
SMP server + participant R as Chat relay(s) + participant RSMP as Chat relays'
SMP server(s) -note over OSMP, RSMP: Owner creates new group, adds chat relays +note over O, RSMP: Owner creates new group, adds chat relays -O -->> O: 1. Create new group +O ->> O: 1. Create new group O ->> OSMP: 2. Create short link
(group entry point) OSMP -->> O: -O -->> O: 3. Add link to group profile -O -->> O: 4. Choose chat relays +O ->> O: 3. Add link to group profile +O ->> O: 4. Choose chat relays par With each relay O ->> R: 5. Contact request
(x.grp.relay.inv) R ->> RSMP: 6. Create relay link @@ -27,24 +26,24 @@ par With each relay O ->> R: 9. Notify relay link added
(x.grp.info) R ->> OSMP: 10. Retrieve short link data OSMP -->> R: - R -->> R: 11. Check relay link added + R ->> R: 11. Check relay link added R ->> O: 12. Confirm to owner
(x.grp.relay.ready) end -O -->> O: 13. Share group short link
(social, out-of-band) +create participant M as Member +O -->> M: 13. Share group short link
(social, out-of-band) -note over OSMP, M: New member connects +note over O, M: New member connects M ->> OSMP: 14. Retrieve short link data OSMP -->> M: -M -->> M: 15. Prepare group record,
save relay links -M ->> R: 16. Connect via relay link(s) +M ->> R: 15. Connect via relay link(s) R -->> M: note over O, M: Message forwarding -O ->> R: 17. Send message -R ->> M: 18. Forward message -M -->> M: 19. Deduplicate message +O ->> R: 16. Send message +R ->> M: 17. Forward message +M ->> M: 18. Deduplicate message ``` Notes: @@ -78,13 +77,13 @@ Notes: ```mermaid sequenceDiagram - participant OSMP as Owner's
SMP server - participant O as Owner - participant R as Chat relay - participant RSMP as Chat relays'
SMP server(s) - participant M as Member + participant O as Owner + participant OSMP as Owner's
SMP server + participant R as Chat relay + participant RSMP as Chat relays'
SMP server(s) + participant M as Member -note over OSMP, M: Scenario 1. Owner deletes chat relay, notifies relay +note over O, M: Scenario 1. Owner deletes chat relay, notifies relay par Owner to chat relay O ->> R: 1a. Delete chat relay
(x.grp.mem.del) @@ -92,29 +91,22 @@ par Owner to chat relay R ->> RSMP: 2a. Delete relay link and Chat relay to members R ->> M: 2b. Forward relay is deleted - M -->> M: 3. Delete connections with relay end and Owner to SMP O ->> OSMP: 1b. Remove relay link
(update group link data) - OSMP -->> O: -and - O -->> O: 1c. Delete connection with relay end -note over OSMP, M: Scenario 2. Owner deletes chat relay, fails to notify relay +note over O, M: Scenario 2. Owner deletes chat relay, fails to notify relay par Owner to chat relay O --x R: 1a. Fail to notify relay and Owner to SMP O ->> OSMP: 1b. Remove relay link
(update group link data) - OSMP -->> O: -and - O -->> O: 1c. Delete connection with relay end loop Chat relay periodic checks R ->> OSMP: 2. Retrieve short link data for served gorup OSMP -->> R: - R --x R: 3. Check relay link added + R -x R: 3. Check relay link present end par Chat relay to SMP destroy RSMP @@ -122,30 +114,29 @@ par Chat relay to SMP and Chat relay to members destroy R R ->> M: 4b. Notify relay is deleted - M -->> M: 5. Delete connections with relay end -note over OSMP, M: Last relay is deleted +note over O, M: Last relay is deleted O --x M: Owner can't send messages to members -M -->> M: Attempt to restore
connection to group (manual) +M ->> M: Attempt to restore
connection to group (manual) M ->> OSMP: Retrieve short link data OSMP -->> M: -M --x M: Members can't restore connection to group +M -x M: Members can't restore connection to group -note over OSMP, M: Restore connection to group +note over O, M: Restore connection to group create participant NR as New chat relay -O <<-->> NR: 1. Add new relay, relay creates and sends link -O <<-->> OSMP: 2. Update short link
(add relay link) -M -->> M: 3. Attempt to restore
connection to group (manual) +O <<->> NR: 1. Add new relay, relay creates and sends link +O <<->> OSMP: 2. Update short link
(add relay link) +M ->> M: 3. Attempt to restore
connection to group (manual) M ->> OSMP: 4. Retrieve short link data OSMP -->> M: M ->> NR: 5. Connect via relay link NR -->> M: O ->> NR: 6. Send message NR ->> M: 7. Forward message -M -->> M: 8. Deduplicate message +M ->> M: 8. Deduplicate message ``` Notes: