Back to problems

Design an Enterprise Messaging / Collaboration System

System Design · Salesforce · Hard

Design a chat service that serves many independent organizations. Each organization manages its own set of users and conversations, and data from one organization must never be visible or accessible to another. The system must support: Direct conversations between two users. Group channels with three visibility levels: public (any member of the organization can join), private (only invited users), and invite‑only (an administrator must approve join requests). Each channel…

Checking your access…