Bird
Raised Fist0
HLDsystem_design~20 mins

Health checks in HLD - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Health Check Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
What is the primary purpose of health checks in a distributed system?

Health checks are used in distributed systems to monitor the status of components. What is their main goal?

ATo increase the storage capacity of the system
BTo verify if components are alive and responsive to requests
CTo encrypt data between services
DTo balance the load evenly across all servers
Attempts:
2 left
💡 Hint

Think about what 'health' means for a service in a system.

❓ Architecture
intermediate
1:30remaining
Which health check type is best for detecting if a web service can handle requests properly?

There are different health check types: TCP, HTTP, and custom application-level checks. Which one best confirms a web service is fully operational?

AHTTP health check that requests a specific endpoint returning status 200
BTCP health check to verify the port is open
CPing the server's IP address
DCheck disk space on the server
Attempts:
2 left
💡 Hint

Consider which check confirms the service logic is working, not just network availability.

❓ scaling
advanced
2:00remaining
How can frequent health checks impact system scalability?

Consider a system with thousands of instances. What is a potential downside of very frequent health checks?

AThey reduce the number of instances needed
BThey improve system throughput by reducing errors
CThey encrypt communication between instances
DThey can overload the network and increase latency
Attempts:
2 left
💡 Hint

Think about the cost of sending many requests frequently.

❓ tradeoff
advanced
2:00remaining
What is a tradeoff when using aggressive health check timeouts?

Setting very short timeouts for health checks can detect failures quickly but may cause what issue?

AIncreased storage requirements for logs
BLonger recovery times after failure
CFalse positives where healthy services are marked unhealthy
DReduced network bandwidth usage
Attempts:
2 left
💡 Hint

Think about what happens if a service is slow but still healthy.

❓ component
expert
2:30remaining
In a microservices architecture, which component is best suited to aggregate health check results from multiple services?

You have many microservices each with their own health checks. Which component should collect and present a unified health status?

AA centralized health aggregator service that polls each service's health endpoint
BEach service writes health data directly to a shared database without aggregation
CLoad balancers perform health checks and store results locally without sharing
DClients perform health checks on all services individually
Attempts:
2 left
💡 Hint

Consider how to get a single view of system health efficiently.

Practice

(1/5)
1. What is the main purpose of a health check in system design?
easy
A. To verify if system components are working properly
B. To increase the system's storage capacity
C. To speed up the system's processing power
D. To change the system's user interface

Solution

  1. Step 1: Understand health check purpose

    Health checks are used to confirm if parts of a system are functioning correctly.
  2. Step 2: Compare options with purpose

    Only To verify if system components are working properly matches this purpose; others relate to unrelated system improvements.
  3. Final Answer:

    To verify if system components are working properly -> Option A
  4. Quick Check:

    Health check = Verify system health [OK]
Hint: Health checks confirm system parts work, not improve features [OK]
Common Mistakes:
  • Confusing health checks with performance tuning
  • Thinking health checks change system features
  • Assuming health checks increase capacity
2. Which of the following is a common way to implement a health check endpoint?
easy
A. A complex database query
B. A user login form
C. A file upload service
D. A simple HTTP GET request returning status

Solution

  1. Step 1: Identify typical health check method

    Health checks often use simple HTTP GET requests to return system status.
  2. Step 2: Eliminate unrelated options

    Database queries, login forms, and file uploads are not standard health check methods.
  3. Final Answer:

    A simple HTTP GET request returning status -> Option D
  4. Quick Check:

    Health check = Simple HTTP GET [OK]
Hint: Health checks usually use simple HTTP GET endpoints [OK]
Common Mistakes:
  • Choosing complex operations for health checks
  • Confusing health checks with user features
  • Selecting unrelated services like file upload
3. Consider this pseudo-code for a health check endpoint:
function healthCheck() {
  if (database.isConnected() && cache.isAvailable()) {
    return 200;
  } else {
    return 503;
  }
}

What HTTP status code will be returned if the database is connected but the cache is down?
medium
A. 503
B. 500
C. 404
D. 200

Solution

  1. Step 1: Analyze condition in code

    The code returns 200 only if both database and cache are healthy.
  2. Step 2: Apply given scenario

    Database is connected (true), cache is down (false), so condition fails and returns 503.
  3. Final Answer:

    503 -> Option A
  4. Quick Check:

    Partial failure returns 503 [OK]
Hint: Both must be healthy for 200; else 503 [OK]
Common Mistakes:
  • Assuming 200 if any component is healthy
  • Confusing 503 with 404 or 500
  • Ignoring the AND condition in code
4. A health check endpoint is returning 200 OK even when the database is down. What is the most likely cause?
medium
A. The HTTP status code 200 means failure
B. The database is actually up
C. The health check does not verify the database connection
D. The cache is down instead

Solution

  1. Step 1: Understand health check logic

    If the endpoint returns 200 even when the database is down, it likely does not check the database.
  2. Step 2: Evaluate other options

    Database being up contradicts the problem; 200 means success, not failure; cache status irrelevant here.
  3. Final Answer:

    The health check does not verify the database connection -> Option C
  4. Quick Check:

    Missing DB check causes false 200 [OK]
Hint: If failure shows 200, check what health check verifies [OK]
Common Mistakes:
  • Misinterpreting HTTP 200 as failure
  • Assuming database is up without proof
  • Ignoring health check code logic
5. You design a health check for a distributed system with multiple services. Which approach best ensures accurate overall health status?
hard
A. Check only the main service's status
B. Aggregate health from all critical services before responding
C. Return 200 if any one service is healthy
D. Skip health checks to reduce network load

Solution

  1. Step 1: Understand distributed system health

    Overall health depends on all critical services working well, not just one.
  2. Step 2: Evaluate options for accuracy

    Aggregating health from all critical services gives a true picture; checking only main or any one service is incomplete; skipping checks loses visibility.
  3. Final Answer:

    Aggregate health from all critical services before responding -> Option B
  4. Quick Check:

    Aggregate all critical services for true health [OK]
Hint: Combine all critical services' health for accurate status [OK]
Common Mistakes:
  • Checking only one service in distributed system
  • Assuming any healthy service means overall health
  • Skipping health checks to save resources
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