Managing Slack Connect

Slack Connect, AKA shared channels, allows communication between different Slack workspaces, via channels shared by participating organizations. Slack Connect has existed for a few years now, and the sheer volume of channels and external connections has increased significantly since the launch. The increased volume introduced scaling problems, but also highlighted that not all external connections…

Yuriy Loginov
11 min readadvanced
--
View Original

Overview

The article discusses the management of Slack Connect, a feature that enables communication between different Slack workspaces through shared channels. It details the challenges faced in scaling the system, the solutions implemented for per-connection configuration, and the evolution of the application layer to simplify administration at scale.

What You'll Learn

1

How to automate the approval process for Slack Connect channels

2

Why a flexible application layer is crucial for managing configurations

3

How to implement a database schema for connection preferences using MySQL

Prerequisites & Requirements

  • Understanding of database management and SQL
  • Experience with backend development and API integration(optional)

Key Questions Answered

How does Slack Connect manage external connections between organizations?
Slack Connect allows organizations to establish shared channels after mutual approval from admins. The system has evolved to automate approvals and customize settings per connection, addressing scaling challenges and enhancing user experience.
What challenges did Slack face with scaling Slack Connect?
The primary challenges included the increasing volume of channels and external connections, which introduced scaling problems and highlighted the need for customizable connection management. The existing configuration system was inadequate for handling the growing scale.
What is the database schema used for managing Slack Connect preferences?
The schema includes a MySQL table named `slack_connect_prefs` with columns for team IDs and a payload for preferences, allowing for efficient querying and storage of connection settings without excessive columns.
Why did Slack choose Solr for their admin dashboard?
Slack opted for Solr due to its efficient search capabilities, ability to handle dynamic fields, and immediate data reading after writes, which were crucial for managing millions of external connections effectively.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Implementing automated approval processes can significantly reduce the administrative burden on Slack Connect admins.
By allowing teams to authorize automatic approvals, organizations can streamline the creation of shared channels, enhancing collaboration and reducing delays.
2
Utilizing a flexible application layer with Protobuf can simplify the management of complex configurations.
This approach allows for easier updates and maintenance of settings, making it more adaptable to future changes without requiring significant infrastructure modifications.
3
Denormalizing data for admin dashboards can improve performance and user experience.
By using Solr for fast text-based searching and filtering, Slack can handle a growing number of connections efficiently, ensuring that admins have quick access to necessary information.

Common Pitfalls

1
Failing to automate approval processes can lead to bottlenecks in channel creation.
Without automation, admins may struggle to keep up with the volume of requests, causing delays and frustration among users.
2
Overcomplicating the database schema can hinder performance and scalability.
A complex schema may lead to inefficient queries and increased latency, making it essential to design with scalability in mind.

Related Concepts

Database Management
API Integration
Backend Development
Scalability Challenges