Instructor track
Facilitation notes, timing, checkpoints, common failures, and reset guidance for the Postgres migration lab.
The full workshop is 4-6 hours. Provisioning the RDS instance and seeding it is the long pole, so start it before participants arrive or reserve a startup buffer. Keep the learner pages on screen for commands; use these notes for pacing and intervention.
| Module | Budget | Hard checkpoint |
|---|---|---|
| 00 Setup | 30-45 min | Tooling verified on the participant's platform |
| 01 Source environment | 45-60 min | wal_level is logical, the seed has finished, and results/before.json exists |
| 02 Plan the cutover | 30-45 min | runbook/cutover.md has no TODO left in it |
| 03 Replicate | 45-60 min | The migration pipe is caught up and the failure injection has been run and repaired |
| 04 Cut over | 35-50 min | Writer commits against Managed Postgres, sequences match, reconciliation passes, no slot remains on RDS |
| 05 Stream the analytical copy | 30-45 min | The ClickPipe's initial load is complete and CDC is caught up |
| 06 Route the OLAP workload | 45-60 min | Both EXPLAINs produced, the pushdown repair done, results/after.json exists |
| 07 Validate and tear down | 35-45 min | The quiz is submitted and nothing is left running in either account |
Those budgets are attention, not wall clock. Three waits are unattended and long: the
terraform apply, the seed in module 01, and the initial load in module 03. Module 02 is
scheduled to absorb the seed, which is why module 02 provisions nothing — it is the only module
whose cost is attention rather than infrastructure, so it is the one that can run inside a wait.
The four things that decide whether the day finishes
- Start the seed early. Module 01's page inverts the learner order for exactly this reason: apply, reboot, schema, seed, and only then teach. A seed that starts after the talk track costs the room its afternoon.
- Do not reveal the sequence step in module 02. One step in the cutover window is a step most people do not think of. Module 03 either confirms a participant found it or shows them the failure it causes. Telling them here removes both outcomes and cannot be undone.
- Run module 03's failure injection as a synchronized room-wide beat, and state the two rules
before it starts:
ENABLEis the only repair, and nobody breaks for lunch with a disabled subscription. - Facilitate the teardown, do not assign it. It is the workshop's only ongoing cost and it is a daily one in two separate accounts.
Reference pages, and when they open
The reference track holds three model answers, and each has a gate:
| Page | Opens after |
|---|---|
| Cutover runbook | Module 04 Step 2, with the participant's executed runbook beside it |
| Pushdown walkthrough | The participant's own EXPLAIN sweep in module 06 |
| Knowledge check rationales | A submitted quiz attempt in module 07 |
Say the gates out loud rather than hoping nobody clicks early. The runbook page is the one that matters: it names the module 02 answer.
Never ask learners to paste AWS or ClickHouse Cloud credentials into chat, slides, shared
terminals, or version-controlled files. Filled-in .env and Terraform variable files stay
local.