Courseiva
Working with Streams and Lambda ExpressionshardMultiple ChoiceObjective-mapped

1Z0-829 Working with Streams and Lambda Expressions Practice Question

A team is developing a real-time data processing pipeline that reads sensor data from a message queue. The pipeline uses a flatMap operation that calls an external geocoding service for each sensor reading. The external service has a rate limit of 10 requests per second and is slow (150ms average response time). The current code: sensorStream.parallelStream() .flatMap(reading -> getGeocode(reading).stream()) .forEach(system.out::println); The application is overloaded because parallel stream fires many concurrent requests, exceeding the rate limit and causing failures. They need to process all sensor data but must respect the rate limit. Which approach should they use?

⚠ Common exam trap

Candidates often assume that reducing parallelism (Option B) is sufficient to control request rates, but they overlook that even a small fixed thread pool can still exceed a low rate limit if requests are made too quickly, and that a rate limiter with temporal control is required to precisely throttle requests per second.

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

Use a sequential stream with a custom rate limiter (e.g., a semaphore) that blocks when the limit is reached.

Using a sequential stream with a custom rate limiter (e.g., a Semaphore configured to allow only 10 permits per second) ensures that the external geocoding service is called at a controlled rate, preventing rate-limit violations. The sequential stream processes elements one at a time, and the rate limiter blocks the thread when the limit is reached, naturally throttling requests to stay within the 10 requests/second limit while still processing all data.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Use a sequential stream with a custom rate limiter (e.g., a semaphore) that blocks when the limit is reached.

    Why this is correct

    A sequential stream combined with a rate limiter ensures requests are sent at a controlled pace, respecting the external service limits.

  • Reduce the parallelism level by using a custom thread pool with a fixed number of threads.

    Why it's wrong here

    This limits concurrency but does not provide fine-grained rate control; requests may still exceed the rate limit at peak times.

  • Use filter to drop some sensor readings to reduce the load.

    Why it's wrong here

    Dropping data is unacceptable as all readings need to be processed.

  • Use a sequential stream and hope the processing completes within the time window.

    Why it's wrong here

    Sequential stream might be safe but does not guarantee rate limiting; it could still send requests too quickly if the stream is large.

About these practice questions

One of 513 original 1Z0-829 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 →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This 1Z0-829 practice question is part of Courseiva's free Oracle 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 1Z0-829 exam.