The full picture
- Worked example to have ready: request does 20ms serial (parsing, single-row txn) + 80ms parallelizable enrichment. Infinite cores → 20ms floor: 5× max, and 8 cores already gets 4.2× — 'buy 64 cores' is provably wasted money. Two lines of arithmetic that kill a bad architecture proposal.
- The hidden serial fractions people miss: lock-protected sections, GC safepoints (all threads paused = p drops), the coordinator in scatter-gather (fan-out is parallel, merge is serial), schema migrations, and — at org scale — code review bottlenecks. Naming non-obvious (1−p) sources is where the question gets senior.
- Universal Scalability Law is the honest upgrade: adds a coherence term (β·n(n−1)) for pairwise coordination — predicting the downturn you actually observe when 32 threads beat 64 on a contended structure. Mention it, sketch why crosstalk grows quadratically, cite your own retrograde-scaling war story.
- Gustafson's reframe matters for scale-out: fixed problem → Amdahl's ceiling; growing problem (more users, more data) → efficiency stays high because parallel work grows while serial stays flat — the theoretical backbone of 'shard it' as a strategy.