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_knockis excluded as it only returns unsigned ‘stripped state’./timestamp_to_eventis 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
/stateendpoint to be bypassed.