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.

We'll email you the permanent link to your Badge so you never lose it. Not shown publicly.

0/20000 charactersMarkdown supported

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

Loading security check...

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