# Module Prerequisites, Order & Editorial Guide

Rules for **workshop-2026** content authors. Apply these when creating story-wrapped modules in
`workshop-2026-v2/modules/` — **do not edit** legacy files in `workshop-2026-v1/`.

**Related**: [TRAINING_MATERIAL_MIGRATION_PLAN.md](../../TRAINING_MATERIAL_MIGRATION_PLAN.md)

---

## Main-day module order (0–7)

| # | Module | Depends on |
|---|--------|------------|
| 0 | Welcome & Setup | — |
| 1 | DE Fundamentals | 0 |
| 2 | Databricks Pipeline | 1 |
| 3 | Snowflake Pipeline | 1 (story); same KPIs as 2 |
| 4 | dbt Pipeline | 2–3 (Bronze/Silver/Gold exist); story adds dbt on Snowflake |
| 5 | Production Patterns | 2–4 |
| 6 | AI Features | 2–4 (Silver/Gold for demos) |
| 7 | Comparison & Wrap-up | 2–4 (open discussion + Power BI payoff) |

Each module: **animation → reflection → theory → practice** (see `trainer/reflection-prompts.md`).

---

## Optional modules (8–9)

| # | Module | Required | Recommended | Independent? |
|---|--------|----------|-------------|--------------|
| 8 | Streaming | Modules **2–3** (batch Silver) | Module **4** (dbt `dynamic_table` track) | Yes — vs Module 9 |
| 9 | Machine Learning | Modules **2–3** (Silver enriched) | Module **4** (dbt feature table); Gold for Cortex `ML.FORECAST` | Yes — vs Module 8 |

### Delivery order

When running **both** optional sessions, deliver **Module 8 before Module 9**:

- **Story**: Marcus needs live dispatch (streaming) before tip-prediction ML.
- **Technical**: No hard dependency — either order works if story is skipped.

### Module 8 dataset (story vs lab)

| Layer | Content |
|-------|---------|
| **Story / animation** | YellowLine NYC live taxi zone demand |
| **Lab** | **Aiven Kafka user-activity events** — teaching proxy (same streaming patterns, different schema) |

**Trainer must say explicitly**: *"YellowLine NYC would stream taxi GPS. We use Aiven user-activity so
every attendee gets a live Kafka topic without TLC streaming infrastructure."*

**Do not describe Module 8 as Wikipedia edits** — legacy `workshop-2026-v1/index.qmd` may still say that; the
correct source of truth is this doc and `docs/animation-production-scripts.md` § Module 8.

### Module 9 dataset

Same NYC Taxi **Silver** from Modules 2–3. Predict `tip_amount` on **credit card trips only**.
No proxy dataset (contrast with Module 8).

---

## Cortex: Module 6 vs Module 9

Trainees confuse these because both mention "Cortex." State the distinction in Module 6 theory and
again at the start of Module 9.

| Module | Product | Examples | Purpose |
|--------|---------|----------|---------|
| **6 — AI Features** | Cortex **LLM** | `AI_COMPLETE`, Copilot, Genie | Analyst assistants — SQL, exploration |
| **9 — ML *(optional)*** | Cortex **ML** | `ML.FORECAST`, `ML.ANOMALY_DETECTION` | Predictive models |

**Trainer line (Module 6)**:

> *"Module 6 is LLM assistants. Optional Module 9 uses different Cortex APIs for prediction."*

**Trainer line (Module 9)**:

> *"This is not Module 6 again — we're training models, not asking an LLM to write SQL."*

---

## Module 7 — link to batch comparison exercise

Before open discussion, optionally use legacy
[`workshop-2026-v1/exercises/ex-batch-comparison.qmd`](../../workshop-2026-v1/exercises/ex-batch-comparison.qmd) —
trainees fill the observation table after Modules 2–4, then discuss in Module 7.

See [`trainer/open-discussion-guide.md`](../trainer/open-discussion-guide.md) § Round 1 optional opener.

---

## When migrating a module from `workshop-2026-v1/` → `workshop-2026-v2/modules/`

1. **Copy** technical steps from `workshop-2026-v1/modules/XX-*.qmd` — do not modify the original.
2. **Add** at top: animation embed, reflection prompts (from `trainer/reflection-prompts.md`).
3. **Apply** callouts from this doc (prerequisites, Cortex, dataset notes) in the **new** file only.
4. **Link** exercises to `workshop-2026-v1/exercises/` until `workshop-2026-v2/exercises/` wrappers exist.

### Editorial callouts to add in workshop-2026 copies

| Legacy quarto module | Add to workshop-2026 copy |
|----------------------|---------------------------|
| `00-welcome-setup.qmd` | Optional module prereqs; deliver 8 before 9 |
| `06-ai-features.qmd` | Not the same as Module 9 ML (Cortex LLM vs ML) |
| `08-streaming-optional.qmd` | Required 2–3, recommended 4; Aiven not Wikipedia |
| `09-ml-optional.qmd` | Required 2–3, recommended 4; not Module 6 Cortex |
| `ex-streaming.qmd` | Module 4 recommended for dbt track |
| `ex-ml.qmd` | Module 4 recommended; Gold for `ML.FORECAST` |
| `setup/aiven-streaming-setup.qmd` | User Activity generator, not Wikipedia |
| `setup/ml-setup.qmd` | Required 2–3, recommended 4 |

---

## Document history

| Date | Change |
|------|--------|
| 2026-05-23 | Initial editorial guide (content moved out of legacy quarto edits) |
| 2026-05-23 | Cross-reference migration plan v2.4 status |
