The map
- Not started
- In progress
- Done
- Builds on
- 01From source to running codeBytecode, loading, the JIT0/4
- 02Objects and typesHeap, collectors, generics, collections0/5
- 03Many things at onceMemory model to virtual threads0/3
- 04Next: system designSame ideas, at service scale
- BulkheadLibrary ↗One shared thread pool for every kind of work is a single point of exhaustion. Give each dependency its own executor.
- BackpressureLibrary ↗A ThreadPoolExecutor's queue is a buffer. Bound it and choose a rejection policy, or a slow dependency fills your heap.
- TimeoutLibrary ↗CompletableFuture.orTimeout and a deadline on every blocking call: the same idea, between services.
Everything here is about Java 21, the current long-term-support release. Where a behaviour belongs to HotSpot (the JVM in OpenJDK and Oracle's JDK) rather than to the Java Language Specification or the JVM Specification, the topic says so.