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.