Bird
Raised Fist0
Microservicessystem_design~20 mins

Parallel running 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
🎖️
Parallel Running Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Parallel Running in Microservices

In a microservices environment, what is the primary purpose of parallel running during a system upgrade?

ATo deploy multiple microservices on the same server to save resources
BTo split a microservice into smaller parts to improve scalability
CTo run microservices in parallel threads within the same process for faster execution
DTo run the old and new versions simultaneously to compare outputs and ensure correctness before full switch-over
Attempts:
2 left
💡 Hint

Think about how to safely transition from an old system to a new one without disrupting users.

Architecture
intermediate
2:00remaining
Designing Parallel Running for a Payment Microservice

You want to implement parallel running for a payment microservice to migrate from version 1 to version 2. Which architectural component is essential to route requests to both versions simultaneously?

AAPI Gateway with traffic splitting capability
BDatabase replication service
CLoad balancer that only sends traffic to the new version
DService registry without routing features
Attempts:
2 left
💡 Hint

Consider how incoming requests can be sent to two different service versions at the same time.

scaling
advanced
2:00remaining
Scaling Challenges in Parallel Running

When running two versions of a microservice in parallel, what is a key challenge related to system resources?

AResource contention leading to increased CPU and memory usage
BDecreased database load because of parallel writes
CReduced network latency due to duplicated services
DAutomatic scaling of only the old version without affecting the new
Attempts:
2 left
💡 Hint

Think about what happens when two systems run side by side on the same infrastructure.

tradeoff
advanced
2:00remaining
Trade-offs of Parallel Running vs Blue-Green Deployment

Which is a major trade-off when choosing parallel running over blue-green deployment for microservices?

AParallel running eliminates the need for monitoring; blue-green requires extensive monitoring
BParallel running is faster to deploy but risks data loss; blue-green is slower but safer
CParallel running requires more resources but allows direct output comparison; blue-green uses fewer resources but switches instantly
DParallel running only works for stateless services; blue-green works for all services
Attempts:
2 left
💡 Hint

Consider resource usage and how the two methods handle traffic during deployment.

estimation
expert
2:00remaining
Estimating Capacity for Parallel Running in Microservices

You have a microservice cluster handling 10,000 requests per second with 20 nodes. You want to run parallel running with the new version alongside the old. How many nodes do you need to maintain the same throughput without degradation?

A20 nodes because parallel running does not affect node count
B40 nodes to handle double the load
C30 nodes assuming 50% load increase due to overhead
D10 nodes since load is split between versions
Attempts:
2 left
💡 Hint

Think about how running two versions simultaneously affects total load and capacity.

Practice

(1/5)
1. What is the main purpose of parallel running in microservices?
easy
A. To run old and new systems together to ensure smooth transition
B. To replace the old system immediately without testing
C. To run only the new system and discard the old one
D. To run multiple unrelated services in parallel

Solution

  1. Step 1: Understand the concept of parallel running

    Parallel running means running old and new systems side by side to compare their outputs and ensure the new system works correctly.
  2. Step 2: Identify the purpose in microservices

    This approach helps catch errors and ensures a smooth transition before fully switching to the new system.
  3. Final Answer:

    To run old and new systems together to ensure smooth transition -> Option A
  4. Quick Check:

    Parallel running = run old and new systems together [OK]
Hint: Parallel running means running old and new systems side by side [OK]
Common Mistakes:
  • Thinking parallel running means immediate replacement
  • Confusing parallel running with running unrelated services
  • Assuming old system is discarded immediately
2. Which of the following is the correct way to implement parallel running in a microservices upgrade?
easy
A. Deploy new microservice version alongside old one and route a copy of requests to both
B. Stop old microservice and deploy new one immediately
C. Deploy new microservice and ignore old service logs
D. Run new microservice only during off-peak hours

Solution

  1. Step 1: Understand deployment in parallel running

    Parallel running requires both old and new versions to run simultaneously to compare results.
  2. Step 2: Identify correct routing method

    Routing a copy of requests to both versions allows output comparison without disrupting users.
  3. Final Answer:

    Deploy new microservice version alongside old one and route a copy of requests to both -> Option A
  4. Quick Check:

    Parallel running = deploy both and route requests to both [OK]
Hint: Route requests to both old and new services in parallel [OK]
Common Mistakes:
  • Stopping old service before testing new one
  • Ignoring logs from old service
  • Running new service only at specific times
3. Consider a microservice system where requests are sent to both old and new versions during parallel running. If the old service returns response A and the new service returns response B, what should the system do?
medium
A. Ignore the difference and continue using the new service
B. Switch back to the old service permanently
C. Stop the old service immediately
D. Log the difference and alert engineers for investigation

Solution

  1. Step 1: Understand output comparison in parallel running

    Parallel running compares outputs to detect discrepancies between old and new services.
  2. Step 2: Decide action on output mismatch

    If outputs differ, the system should log the difference and alert engineers to investigate before switching fully.
  3. Final Answer:

    Log the difference and alert engineers for investigation -> Option D
  4. Quick Check:

    Output mismatch = log and alert [OK]
Hint: Log and alert on output differences during parallel running [OK]
Common Mistakes:
  • Ignoring output differences
  • Stopping old service too early
  • Switching back permanently without investigation
4. A team implemented parallel running but noticed that the new service never receives any requests. What is the most likely cause?
medium
A. The new service crashed immediately after deployment
B. The routing logic is only sending requests to the old service
C. The old service is not logging requests
D. The new service is slower than the old one

Solution

  1. Step 1: Analyze routing in parallel running

    For parallel running, requests must be routed to both old and new services simultaneously.
  2. Step 2: Identify why new service gets no requests

    If new service never receives requests, routing likely sends all traffic only to old service.
  3. Final Answer:

    The routing logic is only sending requests to the old service -> Option B
  4. Quick Check:

    No requests to new service = routing issue [OK]
Hint: Check routing logic if new service gets no requests [OK]
Common Mistakes:
  • Assuming new service crashed without checking logs
  • Blaming old service logs
  • Thinking speed affects request routing
5. You are designing a parallel running strategy for a microservices system with high traffic. Which approach best balances safety and performance?
hard
A. Route 100% of traffic to new service and keep old service idle
B. Run new service only during low traffic hours without output comparison
C. Route 10% of traffic to new service and 90% to old service, compare outputs, then gradually increase new service traffic
D. Stop old service immediately and monitor new service logs

Solution

  1. Step 1: Understand gradual traffic shifting in parallel running

    Gradually increasing traffic to the new service while comparing outputs reduces risk and performance impact.
  2. Step 2: Evaluate options for safety and performance

    Routing a small portion initially and increasing after validation balances safety and system load.
  3. Final Answer:

    Route 10% of traffic to new service and 90% to old service, compare outputs, then gradually increase new service traffic -> Option C
  4. Quick Check:

    Gradual traffic shift with output comparison = safe and performant [OK]
Hint: Start small traffic to new service, compare, then increase [OK]
Common Mistakes:
  • Switching 100% traffic immediately
  • Skipping output comparison
  • Stopping old service too early