Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Faster joins: Creating events from local users: Answer queries over federation where we are obligated to answer #14059

Closed
@reivilibre

Description

@reivilibre

Part of #12997.

When we send a PDU out over federation, there are some queries that we are obligated to answer if the destination makes them.

This includes being able to give back the prev_events of the events that we send. (This is why we can only send events in a safe chain (c.f. #14057) — we don't want to risk leaking other servers' messages as part of our obligations here.)

There may be other obligations; we'll have to look into these.

Obviously we can't answer /state and /state_ids, which is something that out-of-the-loop homeservers can and will request. We could proxy it from a fully-resident server, but this amounts to downloading the entirety of state, which is what we hoped to avoid in /send_join by introducing partial joins in the first place.
In these cases, we'll just have to error out (perhaps with MSC3895 'Unable'). We are happy to accept that we can't send PDUs to out-of-the-loop homeservers. Besides, since we're syncing with another active homeserver, the out-of-the-loop homeserver is still able to catch up from somewhere anyway.

Related:

Tasks:

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-Federated-Joinjoins over federation generally suckA-FederationO-OccasionalAffects or can be seen by some users regularly or most users rarelyS-MajorMajor functionality / product severely impaired, no satisfactory workaround.T-EnhancementNew features, changes in functionality, improvements in performance, or user-facing enhancements.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions