mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-09-16 23:25:00 +00:00
* agent: fast queue rotation does not requiring the current server to be online * update plan * update plan and rfc * corrections * update plan * implementation * test * refactor * test switching notificaitons * rename * fix, refactor * fix possible crash * simplify * refactor * simplify * refactor * simplify * order, avoid re-reading connection --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
23 lines
831 B
Plaintext
23 lines
831 B
Plaintext
sequenceDiagram
|
|
participant A as Alice
|
|
participant R as Current server<br>that has A's<br>receive queue
|
|
participant R' as New server<br>that has the new A's<br>receive queue
|
|
participant S as Server<br>that has A's send queue<br>(B's receive queue)
|
|
participant B as Bob
|
|
|
|
A ->> R': NEW: create new queue (SKEY allowed)
|
|
A ->> S: SEND: QADD (R')
|
|
S ->> B: MSG: QADD (R')
|
|
B ->> R: SEND: messages (also scheduled on R')
|
|
R ->> A: MSG: messages
|
|
B ->> R': SKEY: authorize B as sender
|
|
B ->> R': SEND: confirmation (establishes R' secret)
|
|
R' ->> A: MSG: confirmation (A secures R')
|
|
B ->> R': SEND: held copies (deduped), then new messages
|
|
R' ->> A: MSG: messages
|
|
B ->> R: SEND: remaining tail, then QEND
|
|
R ->> A: MSG: QEND
|
|
B ->> R': SEND: QEND
|
|
R' ->> A: MSG: QEND
|
|
A ->> R: DEL: delete the current queue
|