Ctrl K
Java · Senior · Coding

There are price providers, and each one has a price method that takes a SKU and asynchronously returns a CompletableFuture with a price. Write a method bestPrice that takes a SKU and a list of providers, queries all of them in parallel, and returns a CompletableFuture with the lowest price: providers that fail or don't respond within two seconds are skipped, and if nobody returned a price, the result completes with an error.

~15 min by voice

How to approach it

They're checking whether you can build a non-blocking composition of CompletableFutures: a parallel fan-out, a timeout and error isolation for each call, aggregation via allOf, and correct handling of an empty result with an exception rather than null.

Have you seen this question in a real interview?
Answers0
Avg. score—
Strong—
Practiced0
Topics
Similar questionsWrite a memoizeAsync function. It takes an async function of a string key and a cache time to live in milliseconds, and returns a wrapper: a repeated call with the same key doesn't go to the network, concurrent calls share a single request, and errors aren't cached. SeniorWrite a retry function. It takes an async function and options: the number of attempts, a base delay, and an AbortSignal. It calls the function and, on error, retries it with an exponentially growing delay. It returns a promise with the first successful result or the last error. SeniorYou orchestrate several calls to external services using CompletableFuture. What pitfalls have you run into, and how do you work around them? Senior

Answer by voice

The interviewer will ask this question and listen. Think out loud and ask for a hint if you need one. When you're done, pause or tap “That's my answer”. In about a minute, your score and the points you covered show up here.

Sign in to answer

Best with headphones · ~15 min