Skip to content
playdsa
Preferences

Make yourself comfortable.

Saved on this browser. Your device’s reduced-motion preference is always respected.

Theme
Advanced settings

Draw the High-Level Map

Learn
Play
Prove
Problem context and objectives
Mission briefing

Lead systems engineer · Draw the High-Level Map

Create the HLD for a co-op quest service that stores progress, grants rewards, and updates a social activity feed without making one request depend on every subsystem.

The design must survive players 2M concurrent and progress 80K updates/s. Every box must earn its place by satisfying a requirement or containing a failure.

How you win

  1. 1Trace one user action from request to durable outcome
  2. 2Connect every component to a stated requirement
  3. 3Explain the losing tradeoff, not only the chosen technology

Rules and pressure

  • players: 2M concurrent
  • progress: 80K updates/s
  • Durable quest progress
  • Reward exactly once
Lesson 1 of 3

Live architecture trace

Draw the High-Level Map: request to outcome

1/6
◉Game clientclient◇API gatewayedge⬡Quest serviceserviceDBProgress storedata⇥Domain eventsqueueWKReward workerworkerWKFeed workerworker
LIVE EVENTprogress command

Game client sends “progress command” to API gateway. Choose boundaries around cohesive responsibilities, data ownership, independent scaling, security, and failure isolation. Start simple; distribution adds cost.

players = 2M concurrent

Create the HLD for a co-op quest service that stores progress, grants rewards, and updates a social activity feed without making one request depend on every subsystem. Follow one real user action through the complete architecture; a component is useful only when you can explain the request, state, or failure it handles.

Help shape PlayDSA

Something confusing, broken, or missing? Leave a quick note without leaving your lesson.

Please leave out passwords, payment details and other private information.

Page included: /

Sign in to save feedback here, or send it with your email app. Your draft stays here while you sign in.

Open email instead