A health check is a simple test that a system or service runs to confirm it is working correctly and ready to handle requests.
Click to reveal answer
beginner
Why are health checks important in distributed systems?
They help detect failures early, allowing systems to reroute traffic or restart services to keep the system reliable and available.
Click to reveal answer
intermediate
What is the difference between a liveness probe and a readiness probe?
A liveness probe checks if the service is alive and should be restarted if it fails. A readiness probe checks if the service is ready to accept traffic.
Click to reveal answer
beginner
Name two common methods used for health checks.
1. HTTP endpoint check: The system responds with a status code indicating health.
2. TCP socket check: The system accepts connections on a port to show it is alive.
Click to reveal answer
intermediate
How do health checks improve system scalability?
By quickly identifying unhealthy instances, health checks allow load balancers to avoid sending traffic to them, ensuring only healthy instances handle requests, which keeps the system scalable and responsive.
Click to reveal answer
What does a readiness probe indicate?
AIf the service is alive and should be restarted
BIf the service is ready to accept traffic
CIf the system has enough memory
DIf the database is connected
✗ Incorrect
A readiness probe checks if the service is ready to accept traffic.
Which method is commonly used for health checks?
AHTTP endpoint check
BFTP file transfer
CEmail notification
DDNS lookup
✗ Incorrect
HTTP endpoint check is a common method where the service responds with a status code indicating health.
What happens if a liveness probe fails?
AThe service is restarted
BTraffic is routed to the service
CThe service is marked ready
DNothing happens
✗ Incorrect
If a liveness probe fails, the system restarts the service to recover it.
Why are health checks critical for load balancers?
ATo monitor user activity
BTo encrypt traffic
CTo increase database speed
DTo identify unhealthy instances and avoid sending them traffic
✗ Incorrect
Load balancers use health checks to avoid sending traffic to unhealthy instances.
Which of these is NOT a purpose of health checks?
ADetecting service failures
BRestarting unhealthy services
CIncreasing CPU speed
DImproving system reliability
✗ Incorrect
Health checks do not affect CPU speed.
Explain the role of health checks in maintaining system availability.
Think about how systems stay up and running smoothly.
You got /4 concepts.
Describe the difference between liveness and readiness probes with examples.
Consider when a service should be restarted versus when it should receive traffic.
You got /4 concepts.
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
Step 1: Understand health check purpose
Health checks are used to confirm if parts of a system are functioning correctly.
Step 2: Compare options with purpose
Only To verify if system components are working properly matches this purpose; others relate to unrelated system improvements.
Final Answer:
To verify if system components are working properly -> Option A
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
Step 1: Identify typical health check method
Health checks often use simple HTTP GET requests to return system status.
Step 2: Eliminate unrelated options
Database queries, login forms, and file uploads are not standard health check methods.
Final Answer:
A simple HTTP GET request returning status -> Option D
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
Step 1: Analyze condition in code
The code returns 200 only if both database and cache are healthy.
Step 2: Apply given scenario
Database is connected (true), cache is down (false), so condition fails and returns 503.
Final Answer:
503 -> Option A
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
Step 1: Understand health check logic
If the endpoint returns 200 even when the database is down, it likely does not check the database.
Step 2: Evaluate other options
Database being up contradicts the problem; 200 means success, not failure; cache status irrelevant here.
Final Answer:
The health check does not verify the database connection -> Option C
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
Step 1: Understand distributed system health
Overall health depends on all critical services working well, not just one.
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.
Final Answer:
Aggregate health from all critical services before responding -> Option B
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 unknownstrongwhile earning +1 Grip toward your certificate.