Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Federation callbacks

Federation callbacks can be registered using the module API’s register_federation_callbacks method.

Callbacks

The available federation callbacks are:

on_event_delivered_over_federation

First introduced in Synapse v1.158.0

async def on_event_delivered_over_federation(
    event: FederationEventDeliveryEvent,
) -> None:

Called when an event has been delivered over federation. See FederationEventDeliveryEvent for detailed information available on the event.

Note that depending on the specific method, delivery may not have actually been acknowledged by the other homeserver. See FederatedEventDeliveryMethod for details on which cases imply acknowledgment.

Modules should anticipate more methods being added to the FederatedEventDeliveryMethod enum over time (it is non-exhaustive).

Only methods that deliver full, signed PDUs are included in this mechanism. Some notable examples of excluded endpoints:

  • /send_knock is excluded as it only returns unsigned ‘stripped state’.
  • /timestamp_to_event is excluded as it only returns event IDs, not events themselves.

If multiple modules implement this callback, Synapse runs them all in order. Exceptions are logged and otherwise ignored.

Performance note:

  • Registering this hook causes a performance (caching) optimisation on the Federation /state endpoint to be bypassed.