|
|
@@ -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
|
|
|
|