Bird
Raised Fist0
LLDsystem_design~25 mins

Entry and exit flow in LLD - System Design Exercise

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Design: Entry and Exit Flow System
Design covers the flow of users entering and exiting a facility with tracking and control. Out of scope are physical hardware details like gates or sensors.
Functional Requirements
FR1: Allow users to enter through a controlled entry point
FR2: Allow users to exit through a controlled exit point
FR3: Track entry and exit times for each user
FR4: Prevent unauthorized entry or exit
FR5: Support up to 1000 concurrent users entering or exiting
FR6: Provide real-time status of current users inside
Non-Functional Requirements
NFR1: System must respond to entry or exit requests within 200ms
NFR2: Availability target of 99.9% uptime
NFR3: Support peak load of 1000 concurrent entry/exit requests
NFR4: Ensure data consistency for entry and exit records
Think Before You Design
Questions to Ask
❓ Question 1
❓ Question 2
❓ Question 3
❓ Question 4
❓ Question 5
Key Components
Authentication service for user verification
Entry and exit controllers managing gate access
Database to store entry and exit logs
Real-time dashboard for monitoring current users inside
Notification system for alerts on unauthorized access
Design Patterns
Event-driven architecture for entry and exit events
State machine pattern to track user status (inside/outside)
Circuit breaker for gate control to handle failures
Caching for quick access to current user status
Reference Architecture
User --> Entry Controller --> Auth Service --> Database
       |                 |               |
       v                 v               v
    Exit Controller --> Auth Service --> Database
       |
       v
    Monitoring Dashboard
Components
Entry Controller
Lightweight REST API service
Handles user entry requests, verifies identity, and controls gate access
Exit Controller
Lightweight REST API service
Handles user exit requests, verifies identity, and controls gate access
Authentication Service
OAuth 2.0 or custom auth service
Verifies user identity before allowing entry or exit
Database
Relational DB (e.g., PostgreSQL)
Stores entry and exit logs with timestamps and user status
Monitoring Dashboard
Web dashboard with WebSocket updates
Displays real-time count and list of users currently inside
Request Flow
1. User requests entry at Entry Controller
2. Entry Controller calls Authentication Service to verify user
3. If verified, Entry Controller records entry time in Database
4. Entry Controller signals gate to open for user entry
5. User enters facility
6. User requests exit at Exit Controller
7. Exit Controller calls Authentication Service to verify user
8. If verified and user is inside, Exit Controller records exit time in Database
9. Exit Controller signals gate to open for user exit
10. Monitoring Dashboard queries Database or listens to events to update current users inside
Database Schema
Entities: - User: user_id (PK), name, credentials - EntryExitLog: log_id (PK), user_id (FK), entry_time, exit_time Relationships: - One User can have many EntryExitLog records - EntryExitLog tracks paired entry and exit times per user
Scaling Discussion
Bottlenecks
Authentication Service becoming slow under high concurrent requests
Database write contention for entry and exit logs
Real-time dashboard lagging with many users inside
Gate control communication delays
Solutions
Use caching or token-based authentication to reduce auth service load
Partition database by user or time to reduce write contention
Use event streaming (e.g., Kafka) to push updates to dashboard efficiently
Implement retries and circuit breakers for gate control communication
Interview Tips
Time: Spend 10 minutes clarifying requirements and constraints, 20 minutes designing components and data flow, 10 minutes discussing scaling and trade-offs, 5 minutes summarizing.
Clarify user verification and security needs
Explain separation of entry and exit controllers for clarity
Describe database schema supporting tracking of user presence
Discuss real-time monitoring importance
Address scaling challenges and solutions clearly

Practice

(1/5)
1. What is the main purpose of defining entry and exit flow in a system design?
easy
A. To describe the color scheme of the user interface
B. To list all the hardware components used in the system
C. To show how users or data move through the system from start to finish
D. To specify the programming language used for development

Solution

  1. Step 1: Understand the concept of entry and exit flow

    Entry and exit flow describes how users or data enter and leave a system, showing the path they take.
  2. Step 2: Identify the purpose in system design

    This flow helps designers understand and explain the system's operation clearly, making it easier to improve and test.
  3. Final Answer:

    To show how users or data move through the system from start to finish -> Option C
  4. Quick Check:

    Entry and exit flow = user/data movement [OK]
Hint: Entry and exit flow = start to finish path [OK]
Common Mistakes:
  • Confusing entry/exit flow with UI design
  • Thinking it lists hardware or languages
  • Ignoring the flow of users or data
2. Which of the following correctly represents an entry point in a web application system design?
easy
A. Database backup process
B. User submits a login form
C. Server CPU temperature monitoring
D. Log file archiving

Solution

  1. Step 1: Identify what an entry point means

    An entry point is where users or data first enter the system, such as submitting a form or making a request.
  2. Step 2: Match options to entry points

    Only 'User submits a login form' is a user action entering the system; others are internal processes.
  3. Final Answer:

    User submits a login form -> Option B
  4. Quick Check:

    Entry point = user action start [OK]
Hint: Entry point = where user or data starts [OK]
Common Mistakes:
  • Choosing internal system tasks as entry points
  • Confusing monitoring or backup as entry
  • Ignoring user interaction as entry
3. Consider a system where data enters through an API gateway, passes through a processing service, and exits via a notification service. Which sequence correctly shows the entry and exit flow?
medium
A. Notification Service -> API Gateway -> Processing Service
B. Notification Service -> Processing Service -> API Gateway
C. Processing Service -> API Gateway -> Notification Service
D. API Gateway -> Processing Service -> Notification Service

Solution

  1. Step 1: Identify the entry point

    The API Gateway is where data enters the system, so it must be first in the flow.
  2. Step 2: Follow the data path to exit

    Data moves from API Gateway to Processing Service, then exits via Notification Service.
  3. Final Answer:

    API Gateway -> Processing Service -> Notification Service -> Option D
  4. Quick Check:

    Entry to exit = API Gateway to Notification Service [OK]
Hint: Follow data path from entry to exit [OK]
Common Mistakes:
  • Reversing the order of services
  • Confusing exit with entry points
  • Ignoring the processing step
4. In a system design diagram, the exit flow is incorrectly shown as the entry point. What is the likely impact of this error?
medium
A. Users or data may enter the system incorrectly, causing failures
B. The system will run faster due to reversed flow
C. There will be no impact as entry and exit are interchangeable
D. The system will automatically correct the flow

Solution

  1. Step 1: Understand the role of entry and exit points

    Entry points are where users or data enter; exit points are where they leave. Mixing them causes confusion.
  2. Step 2: Analyze the impact of reversing them

    If exit is shown as entry, the system may receive data incorrectly, leading to failures or errors.
  3. Final Answer:

    Users or data may enter the system incorrectly, causing failures -> Option A
  4. Quick Check:

    Wrong flow = system errors [OK]
Hint: Entry and exit points are NOT interchangeable [OK]
Common Mistakes:
  • Assuming reversed flow improves performance
  • Thinking system auto-corrects flow
  • Ignoring the importance of correct flow direction
5. You are designing a scalable online order system. Which entry and exit flow design best supports handling thousands of simultaneous orders efficiently?
hard
A. Orders enter via a load balancer, pass through multiple processing queues, and exit via a notification service
B. Orders enter directly into the database and exit through a single processing thread
C. Orders enter through email and exit by printing receipts manually
D. Orders enter via a single API endpoint and exit through a batch process once a day

Solution

  1. Step 1: Identify scalability needs

    Handling thousands of orders requires distributing load and parallel processing to avoid bottlenecks.
  2. Step 2: Evaluate each option for scalability

    Orders enter via a load balancer, pass through multiple processing queues, and exit via a notification service uses a load balancer and multiple queues, enabling parallel processing and efficient exit via notifications.
  3. Step 3: Reject options with bottlenecks or manual steps

    Options A, C, and D have single points or manual processes that limit scalability.
  4. Final Answer:

    Orders enter via a load balancer, pass through multiple processing queues, and exit via a notification service -> Option A
  5. Quick Check:

    Load balancer + queues = scalable flow [OK]
Hint: Use load balancer and queues for scalability [OK]
Common Mistakes:
  • Choosing single-thread or manual processing
  • Ignoring parallel processing needs
  • Overlooking bottlenecks in flow design