From 428fc3ffbc3aff2da9b66961c569c8fa2b72893c Mon Sep 17 00:00:00 2001 From: nadvolod <2136245+nadvolod@users.noreply.github.com> Date: Wed, 4 Nov 2026 10:53:13 -0500 Subject: [PATCH 01/13] Scaffold the Temporal Essentials Deck and its Java proof harness 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 --- CONTEXT.md | 11 + decks/java-master/.prettierrc | 11 + .../components/ParentClosePolicy.vue | 119 + decks/java-master/components/ReplayFlow.vue | 417 + .../components/ResumableTransfer.vue | 220 + decks/java-master/components/SagaFlow.vue | 59 + decks/java-master/components/SagaUnwind.vue | 146 + .../components/TemporalArchitecture.vue | 258 + .../components/TimeoutSequence.vue | 382 + decks/java-master/components/WhatWhy.vue | 67 + decks/java-master/components/WorkflowRun.vue | 166 + decks/java-master/components/ZiggyHero.vue | 1563 +++ .../components/timeout-scenarios.ts | 291 + decks/java-master/layouts/code-stack.vue | 272 + .../java-master/layouts/code-walkthrough.vue | 441 + decks/java-master/layouts/full-image.vue | 46 + decks/java-master/package-lock.json | 10055 ++++++++++++++++ decks/java-master/package.json | 19 + .../public/diagrams/saga-flow.html | 618 + decks/java-master/public/icon-linkedin.png | Bin 0 -> 63519 bytes decks/java-master/public/icon-x.png | Bin 0 -> 192278 bytes .../public/images/mascot-wizard.png | Bin 0 -> 226312 bytes .../public/images/theory-of-constraints.png | Bin 0 -> 653697 bytes .../public/images/worker-internals.png | Bin 0 -> 256489 bytes .../public/images/workflow-event-loop.png | Bin 0 -> 146336 bytes .../public/images/workflow-list.png | Bin 0 -> 191366 bytes .../public/images/ziggy-wizard.png | Bin 0 -> 226312 bytes decks/java-master/public/images/ziggy.png | Bin 0 -> 202943 bytes decks/java-master/public/mia.jpg | Bin 0 -> 228076 bytes decks/java-master/public/nikolay.jpg | Bin 0 -> 19260 bytes .../scripts/check-walkthroughs.mjs | 107 + decks/java-master/segments/00-open.md | 126 + decks/java-master/segments/01-why-temporal.md | 669 + .../segments/02-local-development.md | 68 + .../segments/03-temporal-concepts.md | 226 + .../segments/04-design-patterns.md | 512 + decks/java-master/segments/05-workflows.md | 127 + decks/java-master/segments/06-activities.md | 128 + .../java-master/segments/06b-event-history.md | 155 + decks/java-master/segments/07-workers.md | 100 + decks/java-master/segments/07b-client.md | 112 + .../segments/08-start-vs-execute.md | 117 + decks/java-master/segments/09-signals.md | 100 + decks/java-master/segments/10-queries.md | 79 + decks/java-master/segments/11-updates.md | 159 + decks/java-master/segments/12-quiz.md | 243 + .../segments/14-child-workflows.md | 233 + .../segments/15-continue-as-new.md | 200 + decks/java-master/segments/16-heartbeating.md | 187 + .../segments/17-saga-01-overview.md | 44 + .../segments/17-saga-02-solution.md | 46 + .../segments/17-saga-03-implementation.md | 198 + .../segments/17-saga-04-when-to-register.md | 40 + .../segments/17-saga-05-when-to-use.md | 90 + .../segments/17-saga-06-practices.md | 122 + .../segments/17-saga-07-related.md | 39 + .../17b-patterns-and-anti-patterns.md | 423 + decks/java-master/segments/18-versioning.md | 256 + .../java-master/segments/19-serialization.md | 245 + decks/java-master/segments/20-encryption.md | 154 + decks/java-master/segments/21-claim-check.md | 213 + .../java-master/segments/22-more-features.md | 367 + .../segments/23-timeouts-and-retries.md | 409 + .../java-master/segments/24-error-handling.md | 348 + .../java-master/segments/25-observability.md | 561 + .../java-master/segments/26-worker-tuning.md | 370 + decks/java-master/slides.md | 376 + decks/java-master/snippets/.gitignore | 1 + decks/java-master/snippets/pom.xml | 79 + .../devdays/essentials/deck/Slides.java | 165 + .../essentials/deck/SlidesMatchTest.java | 61 + .../essentials/deck/SlidesParseTest.java | 55 + .../essentials/deck/WalkthroughsTest.java | 172 + .../test/resources/simplelogger.properties | 1 + decks/java-master/styles/index.css | 20 + decks/java-master/theme/CHANGELOG.md | 104 + decks/java-master/theme/LICENSE | 21 + decks/java-master/theme/README.md | 351 + decks/java-master/theme/assets/glow.webp | Bin 0 -> 4362 bytes decks/java-master/theme/assets/grid.webp | Bin 0 -> 73328 bytes .../theme/assets/planet-purple.webp | Bin 0 -> 284498 bytes .../java-master/theme/assets/planet-teal.webp | Bin 0 -> 275078 bytes decks/java-master/theme/assets/rex.webp | Bin 0 -> 250026 bytes .../theme/components/BackgroundLayer.vue | 53 + .../theme/components/Checkmark.vue | 38 + .../theme/components/FeatureBlock.vue | 52 + .../theme/components/ProfileAvatar.vue | 53 + .../theme/components/QuoteAttribution.vue | 37 + .../theme/components/ReleaseStageChip.vue | 53 + .../theme/components/TemporalFooter.vue | 38 + .../theme/components/TemporalLogo.vue | 22 + .../theme/components/TimelineRail.vue | 82 + .../theme/components/WorkshopToc.vue | 82 + decks/java-master/theme/example/README.md | 37 + .../theme/example/customer-story.md | 66 + .../theme/example/feature-launch.md | 99 + decks/java-master/theme/example/slides.md | 542 + decks/java-master/theme/example/workshop.md | 115 + decks/java-master/theme/justfile | 100 + .../theme/layouts/architecture.vue | 101 + decks/java-master/theme/layouts/big-stat.vue | 84 + decks/java-master/theme/layouts/chart.vue | 74 + decks/java-master/theme/layouts/checklist.vue | 119 + .../theme/layouts/code-explain.vue | 70 + .../java-master/theme/layouts/comparison.vue | 143 + decks/java-master/theme/layouts/cover.vue | 89 + .../java-master/theme/layouts/cta-banner.vue | 93 + decks/java-master/theme/layouts/cta-icons.vue | 120 + decks/java-master/theme/layouts/default.vue | 33 + decks/java-master/theme/layouts/end.vue | 69 + decks/java-master/theme/layouts/exercise.vue | 85 + .../theme/layouts/eyebrow-hero.vue | 66 + .../theme/layouts/feature-card.vue | 127 + .../theme/layouts/feature-grid.vue | 85 + .../java-master/theme/layouts/image-left.vue | 59 + .../java-master/theme/layouts/image-right.vue | 57 + .../theme/layouts/model-diagram.vue | 83 + decks/java-master/theme/layouts/profile.vue | 85 + decks/java-master/theme/layouts/qa.vue | 46 + decks/java-master/theme/layouts/quote.vue | 84 + .../theme/layouts/release-stages.vue | 82 + decks/java-master/theme/layouts/section.vue | 50 + .../java-master/theme/layouts/subsection.vue | 67 + .../theme/layouts/success-story.vue | 136 + decks/java-master/theme/layouts/timeline.vue | 64 + decks/java-master/theme/layouts/toc.vue | 59 + .../theme/layouts/two-cols-header.vue | 75 + decks/java-master/theme/layouts/two-cols.vue | 40 + decks/java-master/theme/package.json | 40 + decks/java-master/theme/scripts/new-deck.sh | 210 + decks/java-master/theme/setup/mermaid.ts | 41 + decks/java-master/theme/setup/shiki.ts | 11 + decks/java-master/theme/setup/temporal.json | 25 + decks/java-master/theme/spec.md | 185 + decks/java-master/theme/styles/code.css | 40 + decks/java-master/theme/styles/index.ts | 4 + decks/java-master/theme/styles/layout.css | 293 + 137 files changed, 28803 insertions(+) create mode 100644 decks/java-master/.prettierrc create mode 100644 decks/java-master/components/ParentClosePolicy.vue create mode 100644 decks/java-master/components/ReplayFlow.vue create mode 100644 decks/java-master/components/ResumableTransfer.vue create mode 100644 decks/java-master/components/SagaFlow.vue create mode 100644 decks/java-master/components/SagaUnwind.vue create mode 100644 decks/java-master/components/TemporalArchitecture.vue create mode 100644 decks/java-master/components/TimeoutSequence.vue create mode 100644 decks/java-master/components/WhatWhy.vue create mode 100644 decks/java-master/components/WorkflowRun.vue create mode 100644 decks/java-master/components/ZiggyHero.vue create mode 100644 decks/java-master/components/timeout-scenarios.ts create mode 100644 decks/java-master/layouts/code-stack.vue create mode 100644 decks/java-master/layouts/code-walkthrough.vue create mode 100644 decks/java-master/layouts/full-image.vue create mode 100644 decks/java-master/package-lock.json create mode 100644 decks/java-master/package.json create mode 100644 decks/java-master/public/diagrams/saga-flow.html create mode 100644 decks/java-master/public/icon-linkedin.png create mode 100644 decks/java-master/public/icon-x.png create mode 100644 decks/java-master/public/images/mascot-wizard.png create mode 100644 decks/java-master/public/images/theory-of-constraints.png create mode 100644 decks/java-master/public/images/worker-internals.png create mode 100644 decks/java-master/public/images/workflow-event-loop.png create mode 100644 decks/java-master/public/images/workflow-list.png create mode 100644 decks/java-master/public/images/ziggy-wizard.png create mode 100644 decks/java-master/public/images/ziggy.png create mode 100644 decks/java-master/public/mia.jpg create mode 100644 decks/java-master/public/nikolay.jpg create mode 100644 decks/java-master/scripts/check-walkthroughs.mjs create mode 100644 decks/java-master/segments/00-open.md create mode 100644 decks/java-master/segments/01-why-temporal.md create mode 100644 decks/java-master/segments/02-local-development.md create mode 100644 decks/java-master/segments/03-temporal-concepts.md create mode 100644 decks/java-master/segments/04-design-patterns.md create mode 100644 decks/java-master/segments/05-workflows.md create mode 100644 decks/java-master/segments/06-activities.md create mode 100644 decks/java-master/segments/06b-event-history.md create mode 100644 decks/java-master/segments/07-workers.md create mode 100644 decks/java-master/segments/07b-client.md create mode 100644 decks/java-master/segments/08-start-vs-execute.md create mode 100644 decks/java-master/segments/09-signals.md create mode 100644 decks/java-master/segments/10-queries.md create mode 100644 decks/java-master/segments/11-updates.md create mode 100644 decks/java-master/segments/12-quiz.md create mode 100644 decks/java-master/segments/14-child-workflows.md create mode 100644 decks/java-master/segments/15-continue-as-new.md create mode 100644 decks/java-master/segments/16-heartbeating.md create mode 100644 decks/java-master/segments/17-saga-01-overview.md create mode 100644 decks/java-master/segments/17-saga-02-solution.md create mode 100644 decks/java-master/segments/17-saga-03-implementation.md create mode 100644 decks/java-master/segments/17-saga-04-when-to-register.md create mode 100644 decks/java-master/segments/17-saga-05-when-to-use.md create mode 100644 decks/java-master/segments/17-saga-06-practices.md create mode 100644 decks/java-master/segments/17-saga-07-related.md create mode 100644 decks/java-master/segments/17b-patterns-and-anti-patterns.md create mode 100644 decks/java-master/segments/18-versioning.md create mode 100644 decks/java-master/segments/19-serialization.md create mode 100644 decks/java-master/segments/20-encryption.md create mode 100644 decks/java-master/segments/21-claim-check.md create mode 100644 decks/java-master/segments/22-more-features.md create mode 100644 decks/java-master/segments/23-timeouts-and-retries.md create mode 100644 decks/java-master/segments/24-error-handling.md create mode 100644 decks/java-master/segments/25-observability.md create mode 100644 decks/java-master/segments/26-worker-tuning.md create mode 100644 decks/java-master/slides.md create mode 100644 decks/java-master/snippets/.gitignore create mode 100644 decks/java-master/snippets/pom.xml create mode 100644 decks/java-master/snippets/src/test/java/io/temporal/devdays/essentials/deck/Slides.java create mode 100644 decks/java-master/snippets/src/test/java/io/temporal/devdays/essentials/deck/SlidesMatchTest.java create mode 100644 decks/java-master/snippets/src/test/java/io/temporal/devdays/essentials/deck/SlidesParseTest.java create mode 100644 decks/java-master/snippets/src/test/java/io/temporal/devdays/essentials/deck/WalkthroughsTest.java create mode 100644 decks/java-master/snippets/src/test/resources/simplelogger.properties create mode 100644 decks/java-master/styles/index.css create mode 100644 decks/java-master/theme/CHANGELOG.md create mode 100644 decks/java-master/theme/LICENSE create mode 100644 decks/java-master/theme/README.md create mode 100644 decks/java-master/theme/assets/glow.webp create mode 100644 decks/java-master/theme/assets/grid.webp create mode 100644 decks/java-master/theme/assets/planet-purple.webp create mode 100644 decks/java-master/theme/assets/planet-teal.webp create mode 100644 decks/java-master/theme/assets/rex.webp create mode 100644 decks/java-master/theme/components/BackgroundLayer.vue create mode 100644 decks/java-master/theme/components/Checkmark.vue create mode 100644 decks/java-master/theme/components/FeatureBlock.vue create mode 100644 decks/java-master/theme/components/ProfileAvatar.vue create mode 100644 decks/java-master/theme/components/QuoteAttribution.vue create mode 100644 decks/java-master/theme/components/ReleaseStageChip.vue create mode 100644 decks/java-master/theme/components/TemporalFooter.vue create mode 100644 decks/java-master/theme/components/TemporalLogo.vue create mode 100644 decks/java-master/theme/components/TimelineRail.vue create mode 100644 decks/java-master/theme/components/WorkshopToc.vue create mode 100644 decks/java-master/theme/example/README.md create mode 100644 decks/java-master/theme/example/customer-story.md create mode 100644 decks/java-master/theme/example/feature-launch.md create mode 100644 decks/java-master/theme/example/slides.md create mode 100644 decks/java-master/theme/example/workshop.md create mode 100644 decks/java-master/theme/justfile create mode 100644 decks/java-master/theme/layouts/architecture.vue create mode 100644 decks/java-master/theme/layouts/big-stat.vue create mode 100644 decks/java-master/theme/layouts/chart.vue create mode 100644 decks/java-master/theme/layouts/checklist.vue create mode 100644 decks/java-master/theme/layouts/code-explain.vue create mode 100644 decks/java-master/theme/layouts/comparison.vue create mode 100644 decks/java-master/theme/layouts/cover.vue create mode 100644 decks/java-master/theme/layouts/cta-banner.vue create mode 100644 decks/java-master/theme/layouts/cta-icons.vue create mode 100644 decks/java-master/theme/layouts/default.vue create mode 100644 decks/java-master/theme/layouts/end.vue create mode 100644 decks/java-master/theme/layouts/exercise.vue create mode 100644 decks/java-master/theme/layouts/eyebrow-hero.vue create mode 100644 decks/java-master/theme/layouts/feature-card.vue create mode 100644 decks/java-master/theme/layouts/feature-grid.vue create mode 100644 decks/java-master/theme/layouts/image-left.vue create mode 100644 decks/java-master/theme/layouts/image-right.vue create mode 100644 decks/java-master/theme/layouts/model-diagram.vue create mode 100644 decks/java-master/theme/layouts/profile.vue create mode 100644 decks/java-master/theme/layouts/qa.vue create mode 100644 decks/java-master/theme/layouts/quote.vue create mode 100644 decks/java-master/theme/layouts/release-stages.vue create mode 100644 decks/java-master/theme/layouts/section.vue create mode 100644 decks/java-master/theme/layouts/subsection.vue create mode 100644 decks/java-master/theme/layouts/success-story.vue create mode 100644 decks/java-master/theme/layouts/timeline.vue create mode 100644 decks/java-master/theme/layouts/toc.vue create mode 100644 decks/java-master/theme/layouts/two-cols-header.vue create mode 100644 decks/java-master/theme/layouts/two-cols.vue create mode 100644 decks/java-master/theme/package.json create mode 100755 decks/java-master/theme/scripts/new-deck.sh create mode 100644 decks/java-master/theme/setup/mermaid.ts create mode 100644 decks/java-master/theme/setup/shiki.ts create mode 100644 decks/java-master/theme/setup/temporal.json create mode 100644 decks/java-master/theme/spec.md create mode 100644 decks/java-master/theme/styles/code.css create mode 100644 decks/java-master/theme/styles/index.ts create mode 100644 decks/java-master/theme/styles/layout.css diff --git a/CONTEXT.md b/CONTEXT.md index bd32bbd..2d20b1b 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -60,6 +60,17 @@ _Avoid_: validation, verify The Slidev presentation delivered alongside a Workshop. _Avoid_: slides, presentation +**Segment**: +A self-contained section of a Deck, opening with its own divider, that other +Decks import whole. +_Avoid_: chapter, module, section + +**Temporal Essentials**: +The Foundations Deck that holds every Segment, delivered end to end or drawn +from by Workshop Decks. A Deck with no Track, Exercise or Solution of its own, +so it is not a Workshop. +_Avoid_: master deck, the master, Essentials Workshop + **Exercise**: The code tree a learner starts from, with the work left undone as numbered TODOs. Core TODOs are required to finish; Stretch TODOs are optional extras for learners diff --git a/decks/java-master/.prettierrc b/decks/java-master/.prettierrc new file mode 100644 index 0000000..1d4c07a --- /dev/null +++ b/decks/java-master/.prettierrc @@ -0,0 +1,11 @@ +{ + "plugins": ["prettier-plugin-slidev"], + "overrides": [ + { + "files": ["slides.md", "segments/*.md"], + "options": { + "parser": "slidev" + } + } + ] +} diff --git a/decks/java-master/components/ParentClosePolicy.vue b/decks/java-master/components/ParentClosePolicy.vue new file mode 100644 index 0000000..58fb732 --- /dev/null +++ b/decks/java-master/components/ParentClosePolicy.vue @@ -0,0 +1,119 @@ + + + + + + diff --git a/decks/java-master/components/ReplayFlow.vue b/decks/java-master/components/ReplayFlow.vue new file mode 100644 index 0000000..2ee0075 --- /dev/null +++ b/decks/java-master/components/ReplayFlow.vue @@ -0,0 +1,417 @@ + + + + + + diff --git a/decks/java-master/components/ResumableTransfer.vue b/decks/java-master/components/ResumableTransfer.vue new file mode 100644 index 0000000..d434d99 --- /dev/null +++ b/decks/java-master/components/ResumableTransfer.vue @@ -0,0 +1,220 @@ + + + + + + diff --git a/decks/java-master/components/SagaFlow.vue b/decks/java-master/components/SagaFlow.vue new file mode 100644 index 0000000..506c3e9 --- /dev/null +++ b/decks/java-master/components/SagaFlow.vue @@ -0,0 +1,59 @@ + + + +