Software DevelopmentIntermediate 3 to 5 hours

Architect a Scalable Chat Application

Design a real-time messaging system using WebSockets and Pub/Sub.

The Scenario

You are tasked with designing the backend for a new team collaboration tool (similar to Slack). Users need to send messages in real-time, see who is online, and view chat history.

The Brief

Design the architecture for a real-time chat application. You must explain how WebSockets are managed across multiple load-balanced servers so that User A on Server 1 can message User B on Server 2.

Deliverables

  • A system architecture diagram highlighting the API servers, WebSocket servers, and the Pub/Sub broker
  • An explanation of how messages are routed between different WebSocket server instances
  • The database schema for storing users, channels, and messages

Submission Guidance

The core challenge here is horizontal scaling. A single WebSocket server cannot hold all connections. Show how you use a message broker (like Redis Pub/Sub or Kafka) to distribute messages.

Submit Your Work

Your submission is graded against the rubric on the right. If you pass, you get a public Badge URL you can share on LinkedIn. There is no draft save, so work offline first and paste your finished response here.

This appears on your public Badge.

0/20000 charactersMarkdown supported

One per line or comma separated. Up to 5 links.

By submitting, you agree your submission text, name, and evaluation will appear on a public Badge URL.