Head First DSM — English Contents
This book serves Java developers who share coordination state across service instances. DSM centralizes state identity, typed collections, online propagation, conflict handling, and replica repair in one Runtime, reducing repeated infrastructure work in individual services. An order-fulfillment control plane runs through the book. The sequence—identify state, choose semantics, understand replication, integrate an application, own operations, and validate boundaries—turns DSM's value into executable experiments and reviewable decisions. Appendices support lookup and do not replace the learning path.
After all six arcs, a developer can identify repairable coordination state, choose Register, Lease, or CRDT, integrate through a domain adapter, and state proven and open scope from multi-node, fault, and real-port evidence. Orders, inventory, payments, and complete event history remain with their transactional or log-based systems of record.
Reading surfaces
- This page: the English Human Web contents.
- Coding Agent entry: task-oriented versioned Markdown, references, and policies.
- English PDF: sequential offline reading across all six arcs.
- Chinese Human Web: switch to the Chinese edition.
Value-realization path
| Learning stage | Engineering capability | Repeated work reduced | Business/target environment retains |
|---|---|---|---|
| Arc 1: identify and start | divide state responsibility; create Runtime, identity, and two-node visibility | registration, encoding, basic propagation entry | suitability and timing of remote dependence |
| Arc 2: choose semantics | choose Register, Lease, or CRDT from an invariant | conflict resolution, lease management, state merge | authoritative facts, fencing, partition consequences |
| Arc 3: replicate and repair | observe membership, delta, repair, backpressure, and local success | online propagation, gap detection, replica catch-up | external effects, durable history, response semantics |
| Arc 4: integrate applications | use domain ports, Spring Boot, isolation, and layered tests | centralized assembly, failure translation, layered validation | domain contract and production acceptance |
| Arc 5: own operations | define diagnostics, security, lifecycle, and capacity contracts | shared observation, security gates, hot-path benchmarks | thresholds, key custody, drain, production capacity |
| Arc 6: validate boundaries | decide from real ports, federation, exclusion, and capstone | reusable experiments and evidence chain | final adoption and deployment approval |
Source and evidence convention: DSM APIs, implementations, tests, and official examples link to reviewed GitHub revisions so default-branch changes cannot silently alter the evidence. Commands use
submodule/dsmandsubmodule/dsm-examplesas checkout paths. Book-owned exercise assets use repository-relative paths.
Before starting
Arc 1: See Shared State
| Chapter | Topic |
|---|---|
| 1 | DSM Responsibilities and Applicability |
| 2 | Start the First Runtime |
| 3 | Stable Identity for Shared State |
| 4 | From Local Commit to Remote Visibility |
Arc 2: Choose the Right Consistency Semantics
Arc 3: Understand Replication, Partition, and Repair
Arc 4: Integrate Real Application Engineering
| Chapter | Topic |
|---|---|
| 15 | Isolate DSM Details with a Domain Adapter |
| 16 | Assemble Runtime with Spring Boot |
| 17 | Isolate Communication and Collection Domains |
| 18 | Scope of Layered Test Evidence |
Arc 5: Make the System Operable
Arc 6: Prove Boundaries and Complete the Capstone
| Chapter | Topic |
|---|---|
| 23 | Observe Consistency Boundaries through Real Ports |
| 24 | Collection Semantics across Clusters |
| 25 | Identify State That Does Not Fit DSM |
| 26 | Deliver a Reviewable Fulfillment Control Plane |
Appendices
- Appendix A: Runtime and Collection API Quick Reference
- Appendix B: Spring Boot Configuration Quick Reference
- Appendix C: Troubleshooting Decision Tree
- Appendix D: Glossary and Commonly Confused Boundaries
- Appendix E: Capability and Evidence Index
The complete target map is in the editorial control plane.