🛸 Hitchhiker's Guide — Phase 15: Principal Architecture & Strategy
Read this if: you want the principal's decision/migration/leadership toolkit fast, and to pass Round 5 (lead the migration review). Skim, read WARMUP, build the toolkit.
0. The 30-second mental model
A principal's output is decisions, defended with numbers and made durable as ADRs. You choose tools by running a weighted matrix (not fashion), build only your differentiator, migrate via dual-write → validate → cutover → decommission (always reversible), and scale yourself through standards + reference architectures. One sentence: name the dial, quantify both ends, choose, write the ADR — and lead the migration without a big-bang.
1. The decision discipline
1. frame as a dial (P00 forces in conflict)
2. quantify both ends with the workload's numbers
3. score options on weighted factors → DECIDING FACTOR (the one that tipped it)
4. write the ADR: Context · Decision · Alternatives · Consequences · "what would reverse it"
ADR = decisions become legible, teachable, reversible-on-purpose
2. Build vs buy
TCO: Build = high upfront / low run ; Buy = low upfront / high run → find the CROSSOVER
non-cost: control, lock-in, time-to-value, can-you-operate-it, IS IT YOUR DIFFERENTIATOR?
heuristic: BUILD your differentiator; ADOPT everything commoditized (Kafka/Iceberg/…)
build only the thin platform layer (SDK, P12) that encodes YOUR standards
3. Tool selection = run the matrix (you built the inputs)
Kafka/Kinesis/Pulsar (P02) · Flink/Spark-SS/Kafka-Streams/Akka (P04/05)
Iceberg/Delta/Hudi (P09) · Athena/Trino/Spark-SQL (P10) · Cassandra/DynamoDB (P11) · EMR×3 (P07)
"best tool" is meaningless without weights — the SAME two flip winners under different weights
4. Safe migration (Round 5)
dual_write → validate parity → cutover (incremental, old path warm) → decommission (LAST)
NEVER cut over before parity holds ; ALWAYS keep rollback ; never big-bang
= strangler-fig: grow new around old, shift load, retire old
same discipline as schema evolution (P03), backfills (P06), table adoption (P09)
5. Multi-region / DR
RPO (data you can lose) + RTO (time to recover) = the dial (more nines = more $)
active-passive (cheap, slower RTO) vs active-active (instant, costly, multi-write conflicts P01)
DR is only real if GAME-DAY tested (P14)
6. Scale yourself: standards + reference architectures
encode decisions as STANDARDS so teams don't re-decide (or re-mistake)
streaming standard (event-time+idempotency+DLQ), lakehouse standard (Iceberg+compaction), contracts
= platform-as-product: self-service WITH guardrails (P00)
→ "engineers create pipelines without reinventing architecture" (a JD success metric)
7. Design reviews & leadership
review = pressure-test the ADRs (dials? numbers? failure modes? rollback? sensitivity?)
to leadership: speak COST / RISK / TIME / RELIABILITY, not Flink internals
leadership: influence w/o authority, mentor, simplify-without-fragility, calm-from-numbers
8. Beginner mistakes that mark you
- "Best architecture" with no workload weights.
- Building a message bus / table format (not your differentiator).
- Big-bang migration with no parity validation or rollback.
- Decisions in chat, not ADRs → re-litigated every quarter.
- Presenting Flink internals to execs instead of cost/risk/time.
- A DR plan never game-day tested.
- Being the bottleneck (deciding everything) instead of setting standards.
9. War stories
- "The migration broke prod." → big-bang cutover, no parity soak, no rollback.
- "We re-argue Flink vs Spark every quarter." → no ADR captured the decision + revisit criteria.
- "We built our own orchestrator." → not the differentiator; years of toil; adopt Dagster.
- "Failover didn't work in the real outage." → never game-day tested.
10. How this phase pays off later
- Decides between everything in P02–P14; leads the migration that composes them.
- ADR discipline = P00's "name the dial," formalized; standards = the platform of P13.
- Directly → the P16 capstone (compose it all) and your career trajectory.
Read WARMUP, build the toolkit, write some ADRs, then P16: compose the entire track into the five capstone systems — the JD's hard problems, end to end.