How Slack Built Shared Channels
Sep 16, 2019

Summary
This post details the technical challenges and architectural decisions involved in introducing Shared Channels, which fundamentally altered Slack's workspace-centric data partitioning model. It describes the shift from a model where all data belonged to a single workspace's shard to one where shared channel data resides on a single originating workspace's shard, with a new `shared_channels` table acting as a bridge. Key technical challenges addressed include decoupling channel privacy from table/ID encoding by introducing an `is_private` flag and consolidating logic around a single channel object model, and extending the edge cache service (Flannel) to support external user visibility across workspace boundaries.