Bird
Raised Fist0
LLDsystem_design~10 mins

Activity diagrams in LLD - Scalability & System Analysis

Choose your learning style10 modes available
Scalability Analysis - Activity diagrams
Growth Table for Activity Diagrams
Users/EventsDiagram ComplexityTool PerformanceCollaborationStorage & Versioning
100 usersSimple flows, few branchesFast rendering, minimal lagBasic sharing, manual syncSmall files, local storage
10,000 usersModerate complexity, multiple parallel flowsNeeds optimized rendering, cachingReal-time collaboration startsCloud storage, version control needed
1,000,000 usersHigh complexity, many concurrent editsAdvanced rendering, load balancingStrong real-time sync, conflict resolutionDistributed storage, scalable versioning
100,000,000 usersExtremely complex, massive concurrencyMicroservices for rendering, CDN usageGlobal collaboration, partitioned editingSharded storage, archival strategies
First Bottleneck

The first bottleneck is the rendering engine and real-time collaboration system. As user count and diagram complexity grow, rendering large activity diagrams with many branches and states becomes CPU and memory intensive on the client and server. Simultaneously, syncing edits in real-time among many users stresses network and backend services.

Scaling Solutions
  • Horizontal scaling: Add more servers to handle rendering and collaboration load.
  • Caching: Cache diagram parts and rendering results to reduce recomputation.
  • Sharding: Partition diagrams or user groups to reduce concurrency scope.
  • CDN: Use content delivery networks to serve static assets and reduce latency.
  • Optimized rendering: Use incremental rendering and virtualization to handle large diagrams efficiently.
  • Conflict resolution: Implement operational transforms or CRDTs for smooth real-time collaboration.
Back-of-Envelope Cost Analysis

Assuming 1 million active users editing diagrams with an average of 10 actions per second:

  • Requests per second: ~10 million (actions to sync and render)
  • Storage: Each diagram version ~100KB, with 1 million diagrams and 10 versions each -> ~1TB storage
  • Bandwidth: 10 million requests x 1KB payload ≈ 10GB/s (~80 Gbps network)
Interview Tip

Start by explaining how activity diagrams grow in complexity and user concurrency. Identify the rendering and collaboration backend as the first bottleneck. Then discuss scaling strategies like caching, sharding, and horizontal scaling. Finally, mention trade-offs and how to measure success.

Self Check

Your real-time collaboration backend handles 1000 QPS. Traffic grows 10x to 10,000 QPS. What do you do first?

Answer: Add horizontal scaling by adding more backend servers behind a load balancer to distribute the increased request load and maintain low latency.

Key Result
Activity diagrams scale bottleneck first at rendering and real-time collaboration; horizontal scaling and caching are key to handle large user concurrency and diagram complexity.

Practice

(1/5)
1. What is the main purpose of an activity diagram in system design?
easy
A. To visually show the flow of tasks and decisions in a process
B. To list all database tables and their relationships
C. To define the hardware requirements for a system
D. To write the detailed code for each function

Solution

  1. Step 1: Understand activity diagram purpose

    Activity diagrams are used to show how tasks flow and decisions are made in a process.
  2. Step 2: Compare with other options

    Options B, C, and D describe database design, hardware planning, and coding, which are not the role of activity diagrams.
  3. Final Answer:

    To visually show the flow of tasks and decisions in a process -> Option A
  4. Quick Check:

    Activity diagram = task flow visualization [OK]
Hint: Activity diagrams map task flows, not data or code [OK]
Common Mistakes:
  • Confusing activity diagrams with database diagrams
  • Thinking activity diagrams show code details
  • Mixing hardware design with activity flow
2. Which of the following is the correct symbol for a decision point in an activity diagram?
easy
A. A rectangle with rounded corners
B. A circle with a thick border
C. A diamond shape
D. A parallelogram

Solution

  1. Step 1: Recall activity diagram symbols

    Decision points in activity diagrams are shown as diamond shapes to represent branching.
  2. Step 2: Identify other symbols

    Rectangles with rounded corners are actions, circles with thick borders are start/end nodes, and parallelograms are not standard in activity diagrams.
  3. Final Answer:

    A diamond shape -> Option C
  4. Quick Check:

    Decision symbol = diamond [OK]
Hint: Decision points always use diamond shapes [OK]
Common Mistakes:
  • Confusing decision diamonds with action rectangles
  • Using circles for decisions
  • Mixing input/output symbols with decisions
3. Consider this activity diagram snippet:
Start -> Action A -> Decision (Yes/No)
Yes -> Action B -> End
No -> Action C -> End

What is the correct flow if the decision is 'No'?
medium
A. Start -> Action A -> Action B -> End
B. Start -> Action A -> End
C. Start -> Action A -> Decision -> Action B -> Action C -> End
D. Start -> Action A -> Action C -> End

Solution

  1. Step 1: Trace the flow for 'No' decision

    From the decision node, if the answer is 'No', the flow goes to Action C, then to End.
  2. Step 2: Verify other options

    Start -> Action A -> Action B -> End follows 'Yes' path, Start -> Action A -> Decision -> Action B -> Action C -> End incorrectly chains both actions, Start -> Action A -> End skips actions after decision.
  3. Final Answer:

    Start -> Action A -> Action C -> End -> Option D
  4. Quick Check:

    'No' decision leads to Action C [OK]
Hint: Follow arrows from decision to correct action [OK]
Common Mistakes:
  • Mixing 'Yes' and 'No' paths
  • Skipping actions after decision
  • Assuming both paths run together
4. In an activity diagram, a developer mistakenly connects two actions with a double arrow instead of a single arrow. What is the likely issue?
medium
A. There is no difference; arrows can be single or double
B. The flow will be interpreted as parallel execution, causing confusion
C. The double arrow means the process loops infinitely
D. The diagram will show a syntax error and not render

Solution

  1. Step 1: Understand arrow meaning in activity diagrams

    Single arrows show normal flow; double arrows often indicate parallel or concurrent flows.
  2. Step 2: Analyze impact of double arrow misuse

    Using double arrows between two actions may confuse readers into thinking tasks run in parallel, which is incorrect if not intended.
  3. Final Answer:

    The flow will be interpreted as parallel execution, causing confusion -> Option B
  4. Quick Check:

    Double arrow = parallel flow confusion [OK]
Hint: Single arrow = flow; double arrow = parallel flow [OK]
Common Mistakes:
  • Assuming double arrows cause syntax errors
  • Thinking double arrows mean loops
  • Ignoring arrow style importance
5. You need to design an activity diagram for a user login process that includes entering credentials, validating them, and either granting access or showing an error. Which sequence correctly represents this flow?
hard
A. Start -> Enter Credentials -> Validate -> Decision (Valid?) -> Access Granted / Show Error -> End
B. Start -> Validate -> Enter Credentials -> Decision (Valid?) -> Access Granted / Show Error -> End
C. Start -> Enter Credentials -> Decision (Valid?) -> Validate -> Access Granted / Show Error -> End
D. Start -> Enter Credentials -> Access Granted -> Validate -> Show Error -> End

Solution

  1. Step 1: Identify correct logical order

    User must first enter credentials, then system validates them before deciding validity.
  2. Step 2: Check each option's sequence

    Start -> Enter Credentials -> Validate -> Decision (Valid?) -> Access Granted / Show Error -> End follows logical order: enter -> validate -> decision -> outcome. Others have steps out of order.
  3. Final Answer:

    Start -> Enter Credentials -> Validate -> Decision (Valid?) -> Access Granted / Show Error -> End -> Option A
  4. Quick Check:

    Login flow = enter -> validate -> decide -> outcome [OK]
Hint: Follow real process order: input, check, decide, respond [OK]
Common Mistakes:
  • Placing validation before input
  • Skipping decision step
  • Mixing outcome order
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard