The graduation gate for Arc 4. Scenario-based. Three parts. Take it ~2 weeks after Phase 38 ends.

By the time you sit Arc 4’s exam, basecamp crag (data + ML infra) is alive: Iceberg lakehouse, Strimzi Kafka, Spark Operator, Argo Workflows, KubeRay, MLflow, KServe, Keda for scale-to-zero, Flagger for canary. All K8s-native, all operator-managed. You’ve trained classical + DL models, distributed one of them via Ray, served one via KServe. The exam asks whether you can use it all under pressure.

The bar is the Senior Data / ML Engineer exit ramp: ship an ML pipeline end-to-end across the K8s-native data + ML stack, debug any layer, articulate the data → train → serve flow with K8s-native patterns cited.


Ship gates (verify before sitting)

[ ] `crag` data layer alive: Iceberg + MinIO + Strimzi Kafka + Spark Operator + Argo Workflows + Flink Operator (via Phase 32)
[ ] `crag` ML-infra layer alive: KubeRay + Ray cluster + MLflow + KServe + Keda + Flagger
[ ] CDC pipeline Postgres → Kafka → Iceberg running continuously
[ ] At least 3 models trained: classical (XGBoost), DL (transformer or CNN), distributed (Ray)
[ ] At least 1 model serving via KServe with scale-to-zero + canary configured
[ ] crag umbrella public on GitHub
[ ] ml-infra-helpers public on GitHub
[ ] All 8 phase Exit Tests passed
[ ] ~25-30 patterns at OUTLINE+ in data + ML categories
[ ] chronicle: ~25+ Arc 4-specific runbooks

If any ship gate is missing, finish it first.


Exam shape

Total time: 6 hours, one sitting. Workspace: basecamp K3s + EKS + GKE; Arc 4 components alive; GPU available (local or cloud). Allowed: chronicle, project READMEs, ADRs, weekly logs, official docs. Not allowed: web search, AI coding for Build, asking others.

PartTimeFocus
Build180 minShip an ML pipeline end-to-end via K8s-native operators
Debug180 minThree scenarios from Phases 31, 32, 37 catalogs
Articulate90 min~1500 words: walk an event from Kafka through the platform to a model and back

30-min breaks between parts.


Part 1: Build (180 min)

The task: ship a new ML pipeline end-to-end.

Postgres (CDC via Debezium → Strimzi Kafka topic)

Flink streaming job (FlinkDeployment CRD) — windows + aggregates

Iceberg table (snapshot-plus-delta)

Argo Workflow CronWorkflow daily:
  ↓ SparkApplication CRD: train classical model on aggregated Iceberg data
  ↓ MLflow registry: register model
  ↓ RayJob: hyperparameter sweep via Ray Tune
  ↓ Promote best to Staging

KServe InferenceService (canary policy via Flagger; scale-to-zero via Keda)

HTTP endpoint reachable from inside basecamp

Pass bar:

Anti-pattern checks (auto-fail):


Part 2: Debug (180 min)

Three scenarios from Phases 31, 32, 37 catalogs.

Catalog seeds

Phase 31 (Lakehouse):

Phase 32 (Streaming):

Phase 37 (Distributed Training):

Pass bar per scenario:


Part 3: Articulate (90 min)

Prompt: “Walk a single event from a Postgres INSERT through the basecamp data tier to a model prediction and back. Cover: WAL → Debezium → Kafka → Flink streaming job → Iceberg table → daily aggregation via Spark Operator → training data preparation → KubeRay-distributed training → MLflow registry → KServe InferenceService → user-facing prediction. Cite at least 10 patterns and connect each to a specific K8s-native component. ~1500 words.”

Strong answer covers:

Pass bar:


Scoring

OutcomeMeaning
3 PassFull graduation. Move to Arc 5.
2 Pass + 1 Pass-with-notesGraduation with action item; address in first 4 weeks of Arc 5.
2 Pass + 1 FailConditional; re-take within 4 weeks.
≤ 1 PassNot yet. 4-6 weeks more work; retake.

After passing

You can:
- Operate a K8s-native lakehouse (Iceberg + MinIO + Nessie)
- Operate Strimzi Kafka with CDC via Debezium
- Run batch + orchestration via Spark Operator + Argo Workflows
- Apply classical ML deliberately (XGBoost, recommendations)
- Train DL models with PyTorch + KubeRay
- Distribute training via DDP/FSDP/ZeRO
- Serve models via KServe with canary + scale-to-zero
- Operate the K8s-native data + ML stack end-to-end

Exit ramp: Senior Data / ML Engineer
Confidence: real, with `crag` (data tier + ML serving) K8s-native and operator-managed

→ Continue to Arc 5: AI Infrastructure.


Anti-patterns when sitting the exam

Anti-patternWhy
Treating as memory testCompetence test. Use chronicle.
Compressing breaksCognitive fatigue produces wrong answers
AI coding for BuildAuto-fail
Articulate as bullet listsProse is the test
Re-taking immediately on Fail4-6 weeks. Arc 5 isn’t a race.