Skip to content
Snippets Preprocessor error

    [Errno 2] No such file or directory: 'pubsub/types/pubsub_routing_table.md'

PubSub

Purpose

The Publish-Subscribe (PubSub) engine implements a peer-to-peer topic-based publish-subscribe protocol. It is responsible for handling P2P protocol messages and managing subscriptions. Local engines send and receive pub/sub messages via the Router.

~Usage~

The Router engine interfaces with the PubSub engine directly, while other local engines use the Router to subscribe to topics and send messages destined to the multicast address of a pub/sub topic, which the Router then forwards to PubSub for delivery.

State

PubSubRoutingTable

--8<-- "pubsub/types/pubsub_routing_table.md:purpose"

Messages received

TopicAdvert

--8<-- "pubsub/messages/topic_advert.md:purpose"

--8<-- "pubsub/messages/topic_advert.md:type"

Subscribe

--8<-- "pubsub/messages/subscribe.md:purpose"

--8<-- "pubsub/messages/subscribe.md:type"

Unsubscribe

--8<-- "pubsub/messages/unsubscribe.md:purpose"

--8<-- "pubsub/messages/unsubscribe.md:type"

Event

--8<-- "pubsub/messages/event.md:purpose"

--8<-- "pubsub/messages/event.md:type"

EngineMessage

--8<-- "pubsub/messages/engine_message.md:purpose"

--8<-- "pubsub/messages/engine_message.md:type"

SubscribeRequest

--8<-- "pubsub/messages/subscribe_request.md:purpose"

--8<-- "pubsub/messages/subscribe_request.md:type"

UnsubscribeRequest

--8<-- "pubsub/messages/unsubscribe_request.md:purpose"

--8<-- "pubsub/messages/unsubscribe_request.md:type"

StartAdvertRequest

--8<-- "pubsub/messages/start_advert_request.md:purpose"

--8<-- "pubsub/messages/start_advert_request.md:type"

StopAdvertRequest

--8<-- "pubsub/messages/stop_advert_request.md:purpose"

--8<-- "pubsub/messages/stop_advert_request.md:type"

Notifications sent

TopicSubscribed

--8<-- "pubsub/notifications/topic_subscribed.md:purpose"

--8<-- "pubsub/notifications/topic_subscribed.md:type"

TopicUnsubscribed

--8<-- "pubsub/notifications/topic_unsubscribed.md:purpose"

--8<-- "pubsub/notifications/topic_unsubscribed.md:type"

TopicAdvertReceived

--8<-- "pubsub/notifications/topic_advert_received.md:purpose"

--8<-- "pubsub/notifications/topic_advert_received.md:type"

Message flow

sequenceDiagram

--8<-- "pubsub/messages/topic_advert.md:sequence"

--8<-- "pubsub/messages/event.md:sequence"

--8<-- "pubsub/messages/engine_message.md:sequence"

--8<-- "pubsub/messages/subscribe.md:sequence"

--8<-- "pubsub/messages/unsubscribe.md:sequence"

--8<-- "pubsub/messages/subscribe_request.md:sequence"

--8<-- "pubsub/messages/unsubscribe_request.md:sequence"

--8<-- "pubsub/messages/start_advert_request.md:sequence"

--8<-- "pubsub/messages/stop_advert_request.md:sequence"

--8<-- "pubsub/notifications/topic_subscribed.md:sequence"

--8<-- "pubsub/notifications/topic_unsubscribed.md:sequence"

--8<-- "pubsub/notifications/topic_advert_received.md:sequence"