Skip to content

Port Temporal Essentials to Java (decks/java-master) - #2

Merged
nadvolod merged 21 commits into
mainfrom
port-java-essentials-deck
Nov 4, 2026
Merged

nadvolod merged 21 commits into
mainfrom
port-java-essentials-deck

Conversation

@nadvolod

@nadvolod nadvolod commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

Adds Temporal Essentials: Java, the Foundations Deck that holds every Segment, at decks/java-master/. It is ported Segment for Segment from the newest Essentials Deck (ADR 0004). This is a Deck only: it has no Track, Exercise or Solution.

What's in it

  • 35 Segments in the source Deck's order, from Why Temporal through Worker tuning, plus a new "Design patterns" divider. Each was rewritten as idiomatic Java 21 against SDK 1.40.0: Workflow interfaces and their implementations, Workflow.* determinism rules, the Saga helper (using the same names as the Saga Workshop), getVersion, Jackson and PayloadCodec, WorkerTuner, and so on.

  • Lab slides point at the Java Tracks: first-workflow-java, child-workflows-java, continue-as-new-java, heartbeats-java and saga-java. A speaker note says to swap in the Dev Day's short link before delivering.

  • Proof package decks/java-master/snippets/ (Maven). Every code slide's code sits in a compiling snippet between // slide: and // part: markers. JUnit tests cover:

    • drift between each slide and its snippet
    • parsing every java block (JavaParser)
    • walkthrough highlights matching their bubbles
    • runtime behaviour on TestWorkflowEnvironment, asserting what the speaker notes claim

    Schedules and Worker Deployments start a local dev server.

  • CI: .github/workflows/java-master-deck.yml runs mvn test and the rendered walkthrough check (Playwright against slidev).

  • Docs:

    • CONTEXT.md gains Segment and Temporal Essentials
    • ADR 0004
    • a README row for Essentials (Deck only)
    • the four Java Workshops' Deck column now points at their Segments
    • the cost record and log in docs/authoring/

Verified locally

  • mvn test in decks/java-master/snippets: 747 tests, 0 failures
  • scripts/check-walkthroughs.mjs against the dev server: 188 bubbles on 45 walkthrough slides sit on their lines
  • scripts/verify-content.sh and scripts/check-readme-index.sh: pass

Worth a reviewer's eye

  • No "not yet in the Java SDK" cases. Every feature the source Deck covers has a 1.40.0 API, including Serverless Workers (temporal-aws-lambda), Priority, and External Storage (@Experimental).
  • New Java-specific content:
    • the serialization "JSON traps" slide (zone ID lost, Long coming back as Integer, Instant coming back as a string), all tested
    • the deadlock detector (1 s) replacing the other runtime's event-loop points
    • JVM out-of-memory cases in Worker tuning
  • AI integrations slide now lists Spring AI and Google ADK (the latter in Public Preview).
  • temporal-testing is compile scope in the snippets project, because the replay slide's WorkflowReplayer lives in src/main. slf4j-api is pinned to 2.0.17, because temporal-aws-lambda pulls in 1.7, which silently disables logging.
  • Not tested: the MDC claims in the observability notes (slf4j-simple has no MDC) and the tracing note.
  • Cost: $112.15 in agent tokens (Opus 5.5), a floor.

🤖 Generated with Claude Code

nadvolod and others added 21 commits November 4, 2026 10:53
Copies the Deck's theme, layouts, components and segments as the
starting point for the Java Port, and adds the snippets Maven project
with the drift, parts, parse and walkthrough tests. Adds Segment and
Temporal Essentials to CONTEXT.md.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Points the Deck's labs at the Java Tracks, adds the java-master Deck CI
workflow, records why the Deck is java-master ported from the newest
Deck (ADR 0004), adds the Essentials README row and points each Java
Workshop's Deck column at its Segment.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ies, 11-updates and 12-quiz to Java

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…patterns-and-anti-patterns to Java

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…java-essentials-deck

# Conflicts:
#	decks/java-master/snippets/pom.xml
temporal-aws-lambda pulls in slf4j-api 1.7, which cannot load the
slf4j-simple 2 provider and falls back to NOP, so the observability
logging test saw no log lines once both branches were merged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…story to Java

Rewrites the four segments and the ReplayFlow component for the Java SDK,
with every code slide proven by a snippet under essentials.patterns4,
.workflows, .activities and .history, and runtime tests on
TestWorkflowEnvironment for what the slides and notes claim.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
- One bank app across Segments 03, 05, 07, 07b and 17b: TransferWorkflow
  with BankActivities on the transfers Task Queue
- The demo divider types a Maven command; setMaximumAttempts in 17b
- Split the custom payload converter slide in two; the encryption codec
  is a record, so its slide loses the constructor
- Workflow IDs stop duplicates only while the first run is open; the
  Update validator claim says what the SDK actually enforces
- Event History panels use the capitalised Activity Type, checked
  against the recorded history
- Drop porting chatter from speaker notes; no slide numbers or wrong
  ordering words; timelines match the ticket flow; labs in teaching order
- Workflow retry reasoning on the Retry Policies slide; a Design patterns
  divider for Segment 04

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@nadvolod
nadvolod merged commit c5f33a2 into main Nov 4, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant