feat(queue): move design docs to the EIP
This commit is contained in:
parent
8dce530d15
commit
7658e081c5
|
@ -4,20 +4,15 @@ This application makes durable session capable to cooperatively replay messages
|
|||
|
||||
# General layout and interaction with session
|
||||
|
||||
The general idea is described in the [EIP 0028](https://github.com/emqx/eip/blob/main/active/0028-durable-shared-subscriptions.md).
|
||||
|
||||
On the code level, the application is organized in the following way:
|
||||
|
||||

|
||||
|
||||
* The nesting reflects nesting/ownership of entity states.
|
||||
* The bold arrow represent the [most complex interaction](https://github.com/emqx/eip/blob/main/active/0028-durable-shared-subscriptions.md#shared-subscription-session-handler), between session-side group subscription state machine (**GroupSM**) and the shared subscription leader (**Leader**).
|
||||
|
||||
# GroupSM and Leader communication
|
||||
|
||||
The target state of GroupSM and its representation in Leader is `replaying`. That is, when the GroupSM and the Leader agree on the leased streams, Leader sends lease confirmations to the GroupSM, the GroupSM sends iteration updates.
|
||||
|
||||
Other states are used to gracefully reassign streams to the GroupSM.
|
||||
|
||||
Below is the sequence diagram of the interaction.
|
||||
|
||||

|
||||
|
||||
# Contributing
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 320 KiB |
Loading…
Reference in New Issue