Design Unified Chat + Task Platform

Hard45 min
1 / 30
understanding9 min read

Problem Statement: Chat, Tasks, and Calendar in One Surface

How Problem Statement: Chat, Tasks, and Calendar in One Surface (understanding) informs Unified Chat + Task Platform architecture and interviewer depth.

Problem Statement: Chat, Tasks, and Calendar in One Surface

Teams want Slack-speed messaging, Asana-grade task tracking, and Google Calendar-grade scheduling without tab-switching tax. The unified workspace binds three durable domains—conversation threads, actionable work items, and time-boxed events—under one tenant boundary (workspace_id) and one identity graph. Interviews test whether you treat chat as the source of truth for context while tasks and calendar entries remain first-class records with their own lifecycle, not chat message attachments that vanish in scrollback.

A credible v1 serves 50–500 person companies: public/private channels, DMs, message→task promotion, task due dates that materialize as calendar holds, and free/busy aware scheduling inside the product. Peak pain is cross-domain consistency: creating a task from a message must idempotently link message_id↔task_id; moving a calendar event must not orphan reminders in the notification service.

Operational checks
  • Enforce idempotency on message→task promote and calendar hold creation.
  • Cap @channel fanout with chunked waves and per-sender rate limits.
  • Measure p95 websocket delivery separately from REST task mutation latency.
javaOne Dark Pro
1public final class UnifiedproblemGuard {
2 public boolean mayPromote(String workspaceId, String messageId, String idempotencyKey) {
3 return workspaceId != null && messageId != null && idempotencyKey != null;
4 }
5}
pythonOne Dark Pro
1def workspace_partition(workspace_id: str, partitions: int) -> int:
2 import hashlib
3 digest = hashlib.sha256(workspace_id.encode()).hexdigest()
4 return int(digest, 16) % partitions
typescriptOne Dark Pro
1export interface WorkspaceEvent {
2 workspaceId: string;
3 entity: "message" | "task" | "event";
4 entityId: string;
5 seq: number;
6 idempotencyKey: string;
7}

Why interviewers care

Unified Chat + Task Platform interviews reward crisp scope, explicit trade-offs, and failure stories—not generic microservice diagrams.

Interview checkpoint

Name one failure story for Problem Statement: Chat, Tasks, and Calendar in One Surface that proves you understand real outages, not happy-path diagrams.

Key Highlights

  • sec-001: problem — chat seq durability precedes async search indexing.
  • workspace_id isolates Member requests from other tenants.
  • Under load, degrade presence before delaying acked chat for Problem Statement: Chat, Tasks, and Calendar in One Surface.
Interview tip
Lead Problem Statement: Chat, Tasks, and Calendar in One Surface with user journeys, measurable SLOs, and explicit degradation order.
Avoid
Storing tasks only as chat messages without durable task records and searchable metadata.

Section Rescue Kit

Buzzwords to use:

Workspace-scoped shardPromote saga outbox

Safe statements:

  • "For Problem Statement: Chat, Tasks, and Calendar in One Surface, chat acks stay on the durable seq path; search and presence are async."
  • "I cap @channel fanout and measure websocket p95 separately from REST mutations."
Design Unified Chat + Task Platform - System Design | WinJob | WinJob