Faster joins: `/messages` should not block
Currently, attempts to backfill block until state resync completes. It would be nice if we had a partial-state equivalent for backfill, so that users can see history before the resync completes.
Do we need partial-state versions of /state_ids and /state too?
Otherwise I could see us spending as much time backfilling as it would take to do a full join of the room.
Do we need partial-state versions of /state_ids and /state too?
I think a partial-state version of /state_ids is the empty set? But yes, we can't just rely on the current implementation.
(of course, faster backfill is not inherently tied to faster joins - it's extending the "partial state" concept beyond joins and into backfill. As if it weren't already complicated enough.)
This may end up being intertwined with other work on backfill which seeks to reduce the amount of state we need to download, such as https://github.com/matrix-org/synapse/issues/13618.