matrix-org / matrix-org/matrix-spec
Provide a way to make message order explicit when sending (rather than assuming that /send updates the DAG before returning)
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
In other words, if you do a `/send` which returns a 200 OK and immediately do another `/send`, does the spec guarantee ordering such that the second follows the first in the DAG? Or is there any risk that they will end up with the same parent node in the DAG? If the latter, how are we ever meant to get consistent ordering for a given client?
If the spec guarantees that the HS's copy of the room DAG is updated before it returns 200 OK, we should presumably spell it out in the spec.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the Matrix specification's `/send` endpoint and the sections defining room DAG updates and event ordering. Determine whether a successful response guarantees the first event is incorporated before the next request, then update the specification so the ordering guarantee or required mechanism is explicit.
Written by the indexing model from the issue text.
Assessment
- Domain
- distributed-systems, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100