Write up state-event-per-user idea

matthew/location-streaming
Andy Balaam 2 years ago
parent 7ab68f571f
commit 99861a9060

@ -343,6 +343,24 @@ This doesn't give us historical data, however, and requiring a WebRTC stack
is prohibitively complicated for simple clients (e.g. basic IOT devices is prohibitively complicated for simple clients (e.g. basic IOT devices
reporting spatial telemetry). reporting spatial telemetry).
### One state event per user
(As suggested by @deepbluev7)
To reduce the problem of state bloat (too many state events with different keys) and avoid the need for permission changes on state events, we could post a single state event per user, which contained a list of all the currently-shared location events, and the location events could be normal timeline events, which are updated using message edits (with `m.replace`).
Advantages:
* Backwards compatible with static location sharing ([MSC3488](https://github.com/matrix-org/matrix-spec-proposals/pull/3488)) - clients that did not understand live location sharing but did understand static would see the location changing over time due to the edits.
* Only one state event per user - less state bloat.
* No need for changes to the rules about who can modify state events (but still requires the ability for unprivileged users to create a state event with `state_key` equal to their mxid).
Disadvantages
* Potential race where multiple clients update the same state event at the same time, and one overwrites the other.
* Location events need to be fetched from the timeline before they can be used.
* Potential confusion - a live location is semantically different from a static location that has been edited.
### No state events ### No state events
We could send location data as normal E2EE messages, with no state events We could send location data as normal E2EE messages, with no state events

Loading…
Cancel
Save