Module 01 · 4 lessons
Shared state and correctness
Build one model for task ownership, visibility, atomicity, locking, concurrent collections, and business invariants.
24 lessons · Java 21 core and Java 25 diagnostics
Trace tasks across shared memory, executors, cancellation, virtual threads, finite resources, and production evidence—without confusing thread count with capacity.
Six ordered modules · approximately 8 hours
Java 21 examples form the executable core while Java 25 diagnostic behavior stays versioned and evidence-bound.
Module 01 · 4 lessons
Build one model for task ownership, visibility, atomicity, locking, concurrent collections, and business invariants.
Module 02 · 4 lessons
Own executor admission, compose asynchronous results, propagate deadlines, and distinguish cancellation requests from stopped effects.
Module 03 · 2 lessons
Use Java 21 virtual threads deliberately, then isolate Java 25 Scoped Values and JDK 26 preview Structured Concurrency.
Module 04 · 4 lessons
Protect finite resources through bulkheads, backpressure, admission, and evidence-driven JVM and downstream troubleshooting.
Module 05 · 9 lessons
Move from user impact through GC, managed and native memory, thread, JIT, container, and capacity evidence before changing runtime policy.
Module 06 · 1 lessons
Run six deterministic queue, virtual-thread, capacity, deadline, and cancellation scenarios without creating real load.
Practice and evidence
The browser lab and two existing games expose deadline isolation and overload control. They remain teaching tools, not JVM benchmarks or production calculators.
Course library
Shared lessons keep one canonical article and one completion state across their approved paths.
Java Aug 18, 2026 5 min read
Build a practical model of tasks, threads, shared state, race conditions, thread safety, and bounded concurrency in Java backend services.
Java Aug 18, 2026 4 min read
Understand atomicity, visibility, ordering, data races, volatile fields, safe publication, and happens-before reasoning in Java backend code.
Java Aug 18, 2026 5 min read
Compare Java monitors, ReentrantLock, CAS, atomic variables, lock scope, fairness, and compound invariants through backend examples.
Java Mar 15, 2026 4 min read
A practical explanation of ConcurrentHashMap in Java, including thread safety, atomic methods, iteration behavior, and common mistakes.
Java Aug 18, 2026 4 min read
Design Java executors around admission, worker, queue, rejection, shutdown, and downstream capacity instead of treating threads as free throughput.
Java Aug 18, 2026 4 min read
Propagate Java interruption and request deadlines cooperatively across executors, blocking calls, cleanup, Spring boundaries, and durable effects.
Java Aug 18, 2026 4 min read
Compose Java CompletableFuture stages deliberately across executors, failures, timeouts, cancellation, context, and external side-effect boundaries.
System Design Aug 2, 2026 10 min read
Design end-to-end request budgets that distinguish hop timeouts, propagated deadlines, cooperative cancellation, and durable side effects under backend overload.
Java Aug 18, 2026 5 min read
Use Java 21 virtual threads for blocking backend tasks while keeping CPU, connection pools, downstream limits, context, and pinning explicit.
Java Aug 18, 2026 4 min read
Separate Java 25 Scoped Values from JDK 26 preview Structured Concurrency and reason about bounded context, task lifetime, failure, and cancellation.
System Design Aug 2, 2026 10 min read
Contain backend failures by isolating concurrency, threads, connection pools, and queues across priorities, tenants, operations, and dependencies.
System Design Aug 2, 2026 11 min read
Control overload with explicit demand, bounded buffering, queue age, rejection, expiry, and end-to-end flow policies across APIs, streams, and brokers.
System Design Aug 2, 2026 10 min read
Protect backend latency and useful throughput with explicit admission, deliberate load shedding, and evidence-tuned concurrency limits.
Java Aug 18, 2026 5 min read
Diagnose Java thread starvation, unbounded queues, lock contention, virtual-thread pinning, downstream overload, and failed cancellation with evidence.
Java Aug 19, 2026 5 min read
Diagnose production JVM performance from user impact through CPU, garbage collection, memory, threads, containers, and durable outcomes.
Java Aug 19, 2026 5 min read
Read Java 25 garbage collection logs to distinguish allocation pressure, live-set growth, concurrent work, pauses, and Full GC safely.
Java Aug 19, 2026 5 min read
Diagnose Java 25 G1 young, marking, mixed, evacuation, and humongous-object behavior before making minimal evidence-backed tuning changes.
Java Aug 19, 2026 5 min read
Diagnose generational ZGC allocation headroom, concurrent work, stalls, heap sizing, and latency-throughput tradeoffs on Java 25.
Java Aug 19, 2026 4 min read
Use Java 25 class histograms and heap dumps to test retention and memory-leak hypotheses while controlling pause, disk, and data exposure.
Java Aug 19, 2026 4 min read
Separate Java heap, HotSpot native memory, metaspace, buffers, stacks, RSS, and container OOM evidence with Java 25 NMT.
Java Aug 19, 2026 4 min read
Diagnose Java 25 platform and virtual threads, locks, safepoints, CPU saturation, pinning, and dependency waits with bounded evidence.
Java Aug 19, 2026 5 min read
Diagnose Java 25 tiered compilation, compilation queues, deoptimization, code cache pressure, warmup, JFR, and AOT profile boundaries.
Java Aug 19, 2026 5 min read
Turn JVM performance hypotheses into controlled canary changes with representative load, rollback, resource budgets, and user-outcome verification.
Java Aug 18, 2026 6 min read
Run six deterministic Java concurrency scenarios to compare fixed pools, virtual threads, resource guards, deadlines, and cooperative cancellation.
FAQ
Executable core examples target Java 21. Scoped Values are labeled as Java 25 final API, while Structured Concurrency is isolated as JDK 26 sixth preview with required preview flags.
No. Virtual threads reduce the cost of waiting threads but do not add CPU, connections, memory, lock throughput, or downstream capacity. Guard scarce resources separately.
No. It is a deterministic discrete-event teaching model and does not create threads, measure a JVM, plan capacity, or generate production configuration.
Every article keeps one canonical URL and one local completion record. Shared Virtual Threads and troubleshooting lessons count in Java Concurrency, Spring Backend, and System Design where applicable.