HomeChallengesRepsProblemsLeaderboardTake a challenge

The app that stops answering

Sync over async in a request path. It works in testing and dies under load.

Intermediate18 min on the clock5 graded checks · 100 pointsResources and ConcurrencyPro

AssumesBlocking the threadThread-pool starvation is unreadable without the async model. Same track, five sprints apart.

Graded by reading your code against the checklist below.

What you build

  • Await the calls instead of blocking on them
  • Return Task from the actions rather than blocking inside them
  • Remove the Task.Run wrapper around work that is already asynchronous
  • Replace async void with async Task
  • Thread the cancellation token through

Done means

Async all the way through the request path, no blocking, no Task.Run, no async void.

How it is graded

Published in full, before you start — every point is one of these and there is nothing else.

  1. It awaits instead of blocking+30Why the app stops answering
  2. The actions return Task+20Why the app stops answering
  3. No Task.Run around asynchronous work+20Why the app stops answering
  4. No async void+15Why the app stops answering
  5. Cancellation is threaded through+15Rate limiting and cancellation

What it teaches

The rest of Resources and Concurrency