feat(queue): move design docs to the EIP

This commit is contained in:
Ilya Averyanov 2024-06-28 20:16:00 +03:00
parent 8dce530d15
commit 7658e081c5
2 changed files with 4 additions and 9 deletions

View File

@ -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:
![General layout](docs/images/ds_shared_subs.png)
* 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.
![GroupSM and Leader communication](docs/images/groupsm_leader_communication.png)
# Contributing

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 KiB