Katkat

Design Slack-like messaging platform

OpenAISoftware Engineer · Technical Screen

Last updated

This question evaluates a candidate's ability to design scalable, secure, real-time messaging systems, testing competencies in distributed systems, data modeling, API design, storage and sharding strategies, search indexing, and notification delivery.

Design a Slack-like team collaboration product.

Core features:

  • Workspaces (tenants), users, and channels (public/private)
  • Direct messages (1:1 and small groups)
  • Send/receive messages in real time (web + mobile)
  • Message history persistence and sync across devices
  • Search messages within a workspace
  • Notifications (mentions, DMs, channel activity)

Non-functional requirements:

  • High availability and low latency for message delivery
  • Scales to many workspaces and very large channels
  • Reasonable consistency guarantees (ordering within a channel)
  • Security/isolation across workspaces

Deliver:

  • High-level architecture
  • Key APIs and data model
  • Real-time delivery mechanism
  • Storage/sharding strategy
  • How search and notifications work
  • Major trade-offs and bottlenecks