This project is a hands-on Java 21 concurrency lab based on a fictional Netflix-style workflow:
Regions -> Orders -> Products -> gRPC calls
The repository intentionally contains requirements only. Implement the exercises yourself in src/main/java/com/netflix/lab.
.
├── pom.xml
├── README.md
├── labs/
│ ├── 00-project-setup.md
│ ├── 01-foundations-cpu-vs-io.md
│ ├── 02-parallel-stream-pitfalls.md
│ ├── 03-completablefuture-oom-nightmare.md
│ ├── 04-self-throttling-semaphore-ratelimiter.md
│ ├── 05-virtual-thread-traps-pinning-oom.md
│ └── 06-final-solution.md
└── src/main/java/com/netflix/lab/
Create one class per exercise:
| Lab | Suggested class |
|---|---|
| 1 | Lab01Foundations |
| 2 | Lab02ParallelStreamPitfalls |
| 3 | Lab03CompletableFutureOomNightmare |
| 4 | Lab04SelfThrottling |
| 5 | Lab05VirtualThreadTraps |
| 6 | Lab06FinalSolution |
mvn compileUse these when running the specific exercises that need them:
-Djdk.tracePinnedThreads=shortUse this for OOM exercises:
-Xmx128mStart with Project Setup, then complete each lab in order. Every lab file contains the goal, constraints, implementation requirements, and expected observations.