PRD: MSC3706 Faster Joins Implementation

PRD: MSC3706 Faster Joins Implementation

Problem: Joining large federated rooms (e.g., #community:matrix.org with ~85,000 members) is extremely slow, taking minutes to complete. During this time, Element X shows an error and users cannot see the room.

Solution: Implement MSC3706 partial state joins to make rooms visible within seconds, with background sync fetching full member state asynchronously.

Detailed PRD: See prds/10-faster-joins-msc3706.md

Priority: Medium

Estimated Effort: 3-4 weeks total across 7 phases

Key Phases:

  1. Database Schema & Core Infrastructure (2-3 days)
  2. Federation Client Integration (2-3 days)
  3. Background State Sync Worker (5-7 days)
  4. Event State Resolution with Partial State (3-4 days)
  5. Sync API Integration (2-3 days)
  6. Server-Side omit_members Support (Optional, 1-2 days)
  7. Testing & Hardening (3-4 days)

Success Criteria:

  • Join to #community:matrix.org completes in <10 seconds
  • Room appears in sliding sync within 5 seconds
  • Background sync completes within 5 minutes for large rooms

Related: PRD #5 Issue P1, MSC3706, MSC3902