Sharding by team_id
Every workspace shards independently. Data locality per workspace. Enterprise workspaces get bigger shards.
Advertisement
Sharding by team_id
Every workspace shards independently. Data locality per workspace. Enterprise workspaces get bigger shards.
Advertisement
Real-time via WebSocket
Persistent connection per client. Server pushes new messages, edits, reactions, typing.
Threads are lightweight
Reply in thread stores parent_message_id. Doesn't move to new channel. Same store, different query.
Elasticsearch for search
Indexed per workspace. Immediate visibility for new messages. Rebuild is expensive — plan capacity.
Files via S3
Attachments upload directly to S3. URL stored with message. Metadata + permissions live in MySQL.