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 sun.misc.Unsafe

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

shipilev.net

Aleksey Shipilëv (Red Hat OpenJDK)

JMH, GC, JMM, benchmarking

shipilev.net/#blog

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.

Foojay.io

Community

Everything Java

foojay.io

Mixed quality but broad. Good for release digests.

martinfowler.com

Martin Fowler

Architecture, refactoring

martinfowler.com

Slow-cadence, dense. “Patterns of Enterprise Application Architecture” bliki entries.

Baeldung

Various

Spring, Java how-to

baeldung.com

Google’s #1 Java result. Article quality varies. Verify with official docs.

Reflectoring.io

Tom Hombergs

Architecture, testing

reflectoring.io

Excellent long-form. “Get Your Hands Dirty on Clean Architecture” book pairs with it.

thorben-janssen.com

Thorben Janssen

Hibernate, JPA

thorben-janssen.com

Deepest free Hibernate content. Newsletter is worth it.

Piotr’s TechBlog

Piotr Mińkowski

Spring Cloud, K8s

piotrminkowski.com

Practical distributed Spring examples.

Josh Long / Coffee+Software

Josh Long (Broadcom/Spring)

Spring, Reactive

joshlong.com

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