Skip to content

E5-F2: Real-Time Position Updates

Epic: E5: Waiting Queue System

Size: M (Medium)

Problem / Outcome

Users see their queue position updating in real-time.

Scope

In-Scope:

  • Client countdown (decrement every second)
  • Server sync every 60 seconds
  • WebSocket or Firebase channel for updates

Out-of-Scope:

  • SMS updates

Acceptance Criteria

  • AC1: Client decrements position locally every second for smooth UX
  • AC2: Server syncs actual position every 60 seconds
  • AC3: Position updates received via WebSocket/Firebase while app is open

Data Model Impact

No new tables required.

Real-time channel:
- Firebase topic: queue/{match_id}/{user_id}
- or WebSocket: /ws/queue/{match_id}

Message format:
{
  "position": INTEGER,
  "estimated_wait_minutes": INTEGER,
  "queue_size": INTEGER,
  "sync_at": TIMESTAMP
}

Permissions/Roles

  • Authenticated user in queue

How to Verify

npm test -- --grep "position updates"

Expected: Position updates flow correctly, sync corrects drift.

Dependencies

Implementation Tasks

See E5: Waiting Queue Tasks

Doc References


Last Updated: January 2026