Bird
Raised Fist0
Microservicessystem_design~20 mins

Feature toggles in Microservices - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Feature Toggle Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
What is the primary purpose of feature toggles in microservices?

Feature toggles are widely used in microservices architectures. What is their main purpose?

ATo increase the database storage capacity for microservices
BTo monitor network traffic between microservices
CTo manage user authentication and authorization
DTo enable or disable features dynamically without redeploying services
Attempts:
2 left
💡 Hint

Think about how feature toggles help developers control features during runtime.

Architecture
intermediate
1:30remaining
Which component is best suited to centrally manage feature toggles in a microservices system?

In a microservices architecture, where should feature toggle states be stored and managed for consistency?

AIn local files on each microservice's server
BIn a centralized configuration service accessible by all microservices
CHardcoded inside each microservice's source code
DOnly in the client application that consumes the microservices
Attempts:
2 left
💡 Hint

Consider how to keep toggle states consistent and easily changeable across many services.

scaling
advanced
2:00remaining
How to design feature toggles to minimize performance impact in a high-traffic microservices system?

You have many microservices receiving thousands of requests per second. How should feature toggles be designed to avoid slowing down the system?

ACache toggle states locally in each microservice with periodic refresh from central store
BQuery the central toggle store synchronously on every request
CStore toggles only in a database and query it directly for each request
DDisable feature toggles during peak traffic to improve speed
Attempts:
2 left
💡 Hint

Think about reducing network calls and latency for each request.

tradeoff
advanced
2:00remaining
What is a key tradeoff when using feature toggles for long-term code management?

Feature toggles help deploy features safely, but what is a common downside if toggles remain in code too long?

ACode complexity increases, making maintenance harder
BSystem automatically becomes slower over time
CFeature toggles cause database corruption
DToggles prevent any new features from being added
Attempts:
2 left
💡 Hint

Consider how many toggles affect code readability and testing.

estimation
expert
2:30remaining
Estimate the storage size needed for feature toggle states in a microservices system with 1000 toggles and 50 microservices.

Each toggle state is stored as a boolean flag per microservice. Assuming each boolean uses 1 byte, estimate the total storage size in kilobytes (KB) needed to store all toggle states centrally.

AApproximately 500 KB
BApproximately 1000 KB
CApproximately 50 KB
DApproximately 20 KB
Attempts:
2 left
💡 Hint

Calculate total bytes as toggles × microservices × bytes per toggle, then convert to KB (1 KB = 1024 bytes).

Practice

(1/5)
1. What is the main purpose of using feature toggles in microservices?
easy
A. To enable or disable features without changing the code
B. To increase the number of microservices in the system
C. To replace the API Gateway functionality
D. To store user data securely

Solution

  1. Step 1: Understand feature toggles concept

    Feature toggles allow turning features on or off dynamically without code deployment.
  2. Step 2: Compare options with feature toggles purpose

    Only To enable or disable features without changing the code correctly describes this purpose; others are unrelated.
  3. Final Answer:

    To enable or disable features without changing the code -> Option A
  4. Quick Check:

    Feature toggles = Enable/disable features [OK]
Hint: Feature toggles control features without code changes [OK]
Common Mistakes:
  • Confusing feature toggles with service scaling
  • Thinking toggles replace API Gateway
  • Assuming toggles store user data
2. Which of the following is the correct way to check a feature toggle named newUI in a microservice code snippet?
easy
A. if featureToggle.isActive('newUI') { /* use new UI */ }
B. if featureToggle['newUI'] == true then { /* use new UI */ }
C. if featureToggle.newUI = true { /* use new UI */ }
D. if (featureToggle.isEnabled('newUI')) { /* use new UI */ }

Solution

  1. Step 1: Identify correct syntax for feature toggle check

    Common pattern is calling a method like isEnabled('featureName') returning boolean.
  2. Step 2: Evaluate each option's syntax

    if (featureToggle.isEnabled('newUI')) { /* use new UI */ } uses correct method and syntax. if featureToggle['newUI'] == true then { /* use new UI */ } mixes syntax styles incorrectly. if featureToggle.newUI = true { /* use new UI */ } uses assignment instead of comparison. if featureToggle.isActive('newUI') { /* use new UI */ } uses a wrong method name.
  3. Final Answer:

    if (featureToggle.isEnabled('newUI')) { /* use new UI */ } -> Option D
  4. Quick Check:

    Correct method call = if (featureToggle.isEnabled('newUI')) { /* use new UI */ } [OK]
Hint: Look for method isEnabled with feature name string [OK]
Common Mistakes:
  • Using assignment '=' instead of comparison
  • Mixing syntax from different languages
  • Using incorrect method names like isActive
3. Consider this pseudocode for a microservice using feature toggles:
if (featureToggle.isEnabled('betaFeature')) {
  return 'Beta feature active';
} else {
  return 'Beta feature inactive';
}
If the toggle betaFeature is OFF, what will be the output?
medium
A. 'Beta feature active'
B. Error: toggle not found
C. 'Beta feature inactive'
D. No output

Solution

  1. Step 1: Understand toggle state effect on code flow

    If betaFeature is OFF, isEnabled returns false, so else branch runs.
  2. Step 2: Identify output from else branch

    Else branch returns 'Beta feature inactive'.
  3. Final Answer:

    'Beta feature inactive' -> Option C
  4. Quick Check:

    Toggle OFF = else output [OK]
Hint: Toggle OFF triggers else branch output [OK]
Common Mistakes:
  • Assuming toggle OFF triggers if branch
  • Expecting error when toggle is off
  • Ignoring else branch output
4. A developer wrote this code snippet to check a feature toggle but it always activates the feature regardless of toggle state:
if (featureToggle.isEnabled = true) {
  enableFeature();
} else {
  disableFeature();
}
What is the main error causing this behavior?
medium
A. Feature toggle name is incorrect
B. Using assignment '=' instead of comparison '==' in the if condition
C. Missing parentheses around the condition
D. Calling the wrong method name for toggle check

Solution

  1. Step 1: Analyze the if condition syntax

    The condition uses assignment '=' which sets isEnabled to true, always true.
  2. Step 2: Identify correct comparison operator

    It should use '==' or a method call to compare, not assignment.
  3. Final Answer:

    Using assignment '=' instead of comparison '==' in the if condition -> Option B
  4. Quick Check:

    Assignment in if condition causes always true [OK]
Hint: Check if condition uses '==' not '=' [OK]
Common Mistakes:
  • Confusing assignment '=' with equality '=='
  • Assuming method name is wrong without checking syntax
  • Ignoring parentheses importance
5. In a microservices system, you want to safely roll out a new payment feature using feature toggles. Which design approach best supports gradual rollout and quick rollback?
hard
A. Use a centralized feature toggle service with API Gateway to control toggle states dynamically
B. Hardcode toggle values in each microservice and redeploy to change them
C. Use environment variables set at deployment time to control toggles
D. Deploy separate microservices for old and new features without toggles

Solution

  1. Step 1: Identify requirements for gradual rollout and rollback

    We need dynamic control over feature toggles without redeploying services.
  2. Step 2: Evaluate design options

    Use a centralized feature toggle service with API Gateway to control toggle states dynamically uses centralized toggle service and API Gateway for dynamic control, ideal for gradual rollout and rollback. Options A and B require redeployment or static config. Deploy separate microservices for old and new features without toggles lacks toggle control.
  3. Final Answer:

    Use a centralized feature toggle service with API Gateway to control toggle states dynamically -> Option A
  4. Quick Check:

    Central toggle service + API Gateway = safe rollout [OK]
Hint: Central toggle service enables dynamic control [OK]
Common Mistakes:
  • Using static toggles requiring redeployment
  • Ignoring API Gateway role in toggle management
  • Deploying separate services instead of toggling