Skip to content

Conversation + user rooms as a performance layer #195

Description

@codebestia

Implement room:conversation:{conversationId} (typing, receipts, presence, fanout optimization) and room:user:{userId} (cross-device account events). Rooms are ephemeral and rebuildable from Postgres+Redis on restart. They optimize fanout but the authoritative delivery decision still validates conversation_members.

Acceptance criteria:

  • Rooms reconstructable after a gateway restart
  • Typing/receipts use rooms; message delivery still verifies membership
  • No security decision relies solely on room membership

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions