Papers & Deep Reads — When You Want to Go Below the Framework¶
Books teach you the shape of the field. These readings teach you why the field has that shape. You read papers in months 5-6 (concurrency, JVM) and 8-9 (distributed systems) — not before. Do not attempt to consume this list linearly; treat it as reference.
The Handful of Canonical Papers¶
# |
Title / Author |
Year |
Why |
Read In |
|---|---|---|---|---|
1 |
The Free Lunch Is Over (Herb Sutter) — gotw.ca/publications/concurrency-ddj.htm |
2005 |
Foundational essay on why concurrency matters. 20 years old, still cited. |
M5 |
2 |
Java Memory Model FAQ (Jeremy Manson, Bill Pugh) — cs.umd.edu/~pugh/java/memoryModel |
2004-2007 |
JMM demystified. Read before JLS Ch 17. |
M5 |
3 |
Dynamo: Amazon’s Highly Available Key-value Store (DeCandia et al.) |
2007 |
The paper that shaped modern NoSQL. Read alongside DDIA Ch 5. |
M8 |
4 |
MapReduce: Simplified Data Processing on Large Clusters (Dean, Ghemawat) |
2004 |
Historical anchor for distributed batch processing. Short. |
M8 |
5 |
The Google File System (Ghemawat, Gobioff, Leung) |
2003 |
Companion to MapReduce. Understand what HDFS descended from. |
M8 |
6 |
In Search of an Understandable Consensus Algorithm (Raft) (Ongaro, Ousterhout) |
2014 |
Raft in ~18 pages. Read before touching etcd/Kafka Raft. |
M8 |
7 |
Kafka: A Distributed Messaging System for Log Processing (Kreps et al., LinkedIn) |
2011 |
Origin paper of the log-as-primitive worldview. |
M8 |
8 |
Life Beyond Distributed Transactions (Pat Helland) |
2007 |
Every senior engineer references this. Read once. |
M8 |
9 |
CAP Twelve Years Later (Eric Brewer) — infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed |
2012 |
Fix your CAP mental model. |
M8 |
10 |
The Tail at Scale (Dean, Barroso) |
2013 |
Why P99 matters. Read before touching Micrometer/observability. |
M8 |
JEPs to Read (JDK Enhancement Proposals)¶
The openjdk.org/jeps/<number> URL pattern is stable. These are the JEPs that shaped modern Java. Read the JEP itself (usually 3-8 pages), then the release notes.
JEP |
Title |
Java Version |
Read In |
Why |
|---|---|---|---|---|
359 |
Records (Preview) |
14 (2020) |
M3 |
Data-carrier classes done right. |
361 |
Switch Expressions |
14 (2020) |
M3 |
Pattern matching foundation. |
371 |
Hidden Classes |
15 (2020) |
M6 |
Runtime-generated classes, foundation of Loom & records. |
394 |
Pattern Matching for instanceof |
16 (2021) |
M3 |
Cleaner type checks. |
395 |
Records (Final) |
16 (2021) |
M3 |
Recap in final form. |
397 |
Sealed Classes (Preview) |
15 (2021) |
M3 |
Closed hierarchies for pattern matching. |
409 |
Sealed Classes (Final) |
17 (2021) |
M3 |
Recap. |
425 |
Virtual Threads (Preview) |
19 (2022) |
M5 |
Loom. The biggest concurrency shift since 1.5. |
428 |
Structured Concurrency (Incubator) |
19 (2022) |
M5 |
Task scopes. Read alongside JEP 425. |
444 |
Virtual Threads (Final) |
21 (2023) |
M5 |
Production Loom. Now the default in Spring Boot 3.2+. |
453 |
Structured Concurrency (Preview) |
21 (2023) |
M5 |
Preview status as of Java 24. |
466 |
Class-File API (2nd Preview) |
22 (2024) |
M6 (optional) |
Replacing ASM. Only if you touch bytecode tooling. |
471 |
Deprecate the Memory-Access Methods in |
23 (2024) |
M6 |
Foreign Function & Memory API is the future. |
483 |
Ahead-of-Time Class Loading (preview) |
24 (2025) |
M6 |
Startup optimization; supersedes some CDS. |
Track upcoming JEPs at openjdk.org/jeps/0 — filter by status “Candidate” or “Proposed to Target.”
Blogs You Actually Read¶
Blog |
Author |
Focus |
URL |
Verdict |
|---|---|---|---|---|
Aleksey Shipilëv (Red Hat OpenJDK) |
JMH, GC, JMM, benchmarking |
The god-tier resource on JVM performance. Read every post on JMM & false sharing. |
||
inside.java |
Nicolai Parlog + Oracle Java team |
New JDK features, JEPs |
inside.java |
Official but not marketing. JEP Café video series accompanies it. |
Community |
Everything Java |
Mixed quality but broad. Good for release digests. |
||
Martin Fowler |
Architecture, refactoring |
Slow-cadence, dense. “Patterns of Enterprise Application Architecture” bliki entries. |
||
Baeldung |
Various |
Spring, Java how-to |
Google’s #1 Java result. Article quality varies. Verify with official docs. |
|
Tom Hombergs |
Architecture, testing |
Excellent long-form. “Get Your Hands Dirty on Clean Architecture” book pairs with it. |
||
Thorben Janssen |
Hibernate, JPA |
Deepest free Hibernate content. Newsletter is worth it. |
||
Piotr’s TechBlog |
Piotr Mińkowski |
Spring Cloud, K8s |
Practical distributed Spring examples. |
|
Josh Long / Coffee+Software |
Josh Long (Broadcom/Spring) |
Spring, Reactive |
Streams > blog. |
Talks Worth an Hour¶
Hardware/Software Co-design — Cliff Click (any talk) on JVM & lock-free algorithms
Java Language Futures — Brian Goetz (annual, Devoxx / JavaOne)
The State of OpenJDK — Mark Reinhold (annual JavaOne keynote)
Aleksey Shipilëv on GC — search “Shipilev GC” on YouTube; the OpenJDK Committers’ Workshop talks
The Bootiful Podcast — Josh Long studies Spring/Java people; irregular, worth dipping
How Deep to Go¶
You are not writing OpenJDK. You do not need to read the JVM specification cover-to-cover. Read a JEP when the release notes mention it. Read a paper when a book you’re reading cites it. Everything else is procrastination dressed as scholarship.
Return to README.md · Next: 04_practice_platforms.md