KCNA Cloud Native Application Delivery Practice Question
A microservice application is experiencing high latency during traffic spikes. The team identifies that the database connection pool is exhausted. They want to implement a pattern that helps decouple the microservice from direct database connections and smooth out traffic bursts. Which design pattern should they apply?
⚠ Common exam trap
CNCF often tests the distinction between patterns that handle failures (Circuit Breaker, Retry) versus patterns that manage load (Queue-based Load Leveling), and the trap here is that candidates confuse 'smoothing traffic bursts' with 'preventing repeated failures,' leading them to pick the Circuit Breaker or Retry pattern incorrectly.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Queue-based Load Leveling pattern
The Queue-based Load Leveling pattern uses a message queue (e.g., RabbitMQ, Amazon SQS) as a buffer between the microservice and the database. When traffic spikes occur, requests are queued and processed at a manageable rate, preventing the database connection pool from being exhausted. This decouples the service from direct database connections and smooths out bursts, directly addressing the latency issue.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Bulkhead pattern
Why it's wrong here
Bulkhead isolates failures by partitioning resources such as thread pools per dependency, so one saturated pool cannot exhaust others; it does not decouple callers from the database or buffer bursts. Bulkhead suits limiting blast radius across independent downstream services.
- ✗
Circuit Breaker pattern
Why it's wrong here
Circuit Breaker stops calls after a failure threshold, preventing repeated attempts, but it does not decouple the microservice from direct database connections or absorb traffic bursts. Circuit Breaker suits halting calls to a failing dependency to allow recovery.
- ✓
Queue-based Load Leveling pattern
Why this is correct
Queue-based Load Leveling inserts a queue between the microservice and database, letting producers enqueue requests while consumers drain them at a controlled rate. This decouples direct database connections and absorbs traffic bursts, preventing connection pool exhaustion.
- ✗
Retry pattern
Why it's wrong here
The retry pattern re-issues failed requests, so it cannot decouple the service from database connections or absorb bursts; repeated attempts would worsen pool exhaustion during spikes. It is tempting because retries genuinely help with transient, intermittent faults such as brief network blips or momentary timeouts, where a single repeated call succeeds.
Go deeper
Related to this question
About these practice questions
One of 930 original KCNA practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This KCNA practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the KCNA exam.