element-hq / element-hq/synapse
Experimental feature: MSC4370 `GET /extremities` endpoint
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 600
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 51
Description
Tracking issue for https://github.com/matrix-org/matrix-spec-proposals/pull/4370
## Context
T&S is exploring what DAG-level tooling might look like through [policy servers](https://matrix.org/blog/2025/12/policyserv/). This new federation endpoint is expected to be used to allow lightweight server implementations (like [policyserv](https://github.com/matrix-org/policyserv)) to send events and retrieve "current" state information about rooms.
It is *not* enabled by default.
## Current design in Synapse
The endpoint is implemented as a "normal" federation endpoint. Its implementation is copy/pasted from the `make_[join|leave|knock]` endpoints as they return similar information.
## Caveats
The naming might change as the proposal works through the spec process. As of writing, the MSC has only had high level review.
## When to remove
The *unstable* feature can be removed in these cases:
* Immediately upon MSC rejection.
* At least 2 months after a stable implementation (implying MSC acceptance). Can probably be earlier after talking to/convincing T&S.
* Immediately after T&S says it's fine to remove (T&S may need prompting to make this decision)
Contributor guide
Research direction
Start by reading MSC4370 and its linked proposal pull request, then inspect Synapse's existing federation make_join, make_leave, and make_knock endpoint implementations referenced in the issue. The issue does not name files or tests; completion depends on the proposal's status and coordination with T&S about when the unstable feature may be removed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100