emqx/apps/emqx_ds_shared_sub
Ilya Averyanov 8dce530d15 feat(queue): fix progress reporting and more tests
We test reassignment during the intensive replay
2024-07-30 13:01:12 +03:00
..
docs/images feat(queue): document protocol between agent and leader 2024-07-30 13:01:09 +03:00
src feat(queue): fix progress reporting and more tests 2024-07-30 13:01:12 +03:00
test feat(queue): fix progress reporting and more tests 2024-07-30 13:01:12 +03:00
BSL.txt feat(sessds): make ds session be aware of shared subscriptions 2024-06-04 17:15:30 +03:00
mix.exs chore: add missing mix files to new apps 2024-07-04 10:27:59 -03:00
README.md feat(queue): document protocol between agent and leader 2024-07-30 13:01:09 +03:00
rebar.config feat(sessds): make ds session be aware of shared subscriptions 2024-06-04 17:15:30 +03:00

EMQX Durable Shared Subscriptions

This application makes durable session capable to cooperatively replay messages from a topic.

General layout and interaction with session

General layout

  • The nesting reflects nesting/ownership of entity states.
  • The bold arrow represent the most complex interaction, 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

Contributing

Please see our contributing.md.

License

EMQ Business Source License 1.1, refer to LICENSE.