Interview prompt
Problem context
Skills being evaluated
Use the sequence below to surface constraints, choose boundaries, test failure behavior, and defend trade-offs. Concrete numbers are interview assumptions, not claims about a real production system.
Clarify the decision
- Classify configuration by consequence and staleness tolerance: performance tuning, traffic movement, security revocation, and destructive enablement are not equivalent. Ask who may publish, how quickly each class must propagate, and what a disconnected data plane should do.
Establish scale assumptions
- Assume 60k clients across twenty regions, hundreds of updates per minute, and seconds-level propagation for emergency policy. Design for reconnect storms and many readers, not high write throughput.
Functional and non-functional requirements
- Request serving must continue from the last known valid snapshot, every update must be authenticated and auditable, and clients must reject corrupt or incompatible configuration. High-risk changes require stronger approval and freshness rules.
High-level architecture
- Use a quorum-backed authoritative store, an append-only signed version log, regional distribution relays, and client-side cached snapshots. Clients evaluate locally and report applied version; a separate emergency channel can carry narrowly scoped revocations.
Data model and flow
- Publish an immutable version with schema version, predecessor, author, approvals, validity window, and checksum. Relays stream deltas but clients can always fetch and verify a complete snapshot before an atomic local swap.
Consistency and transaction boundaries
- The control plane is strongly consistent for publication order, while data planes are deliberately eventually consistent. Safety rules define minimum accepted version or expiry; a client beyond that boundary fails only the affected operation, not the whole process.
Failure modes and recovery
- Keep last-known-good state, cap relay retry storms, and use randomized reconnect. Bad configuration is contained with staged rollout, client validation, automatic rollback on health regression, and a break-glass revocation path independent of the primary publisher.
Security and privacy
- Sign versions, authorize by policy scope, require multi-party approval for sensitive classes, and make rollback a new audited version rather than history mutation. Protect the signing path with hardware-backed keys and explicit rotation.
Observability and SLOs
- Measure publish-to-apply latency percentiles, version skew, rejected configs, expired safety policy, relay backlog, and health changes by cohort. Operators need a global map of which instances are on which version.
Capacity and cost
- Distribute snapshots through regional relays or object storage and keep evaluation local to avoid a per-request control-plane dependency. Size for mass reconnect and retain enough history for forensic replay without keeping every delta forever.
Alternatives and trade-offs
- Push gives fast propagation but reconnect complexity; pull is robust but bounded by polling delay. Signed immutable versions and atomic swaps cost more storage than mutable rows but make rollback and forensics far safer.
Evolution and migration
- Introduce version envelopes and client reporting before changing transport. Run old and new evaluators in shadow, then migrate low-risk policy classes first; publish a deprecation horizon for clients that cannot enforce freshness.
What Staff and Principal candidates should emphasize
- The important insight is that availability belongs to the data plane, while authority belongs to the control plane. Strong answers define risk classes, safe stale behavior, atomic application, and how an operator proves global convergence.
Decision trade-offs
Distribution
Option A
Push streaming updates
Option B
Periodic pull of snapshots
Recommendation:Use push for latency plus snapshot pull for recovery; clients must not depend on an uninterrupted stream to reconstruct truth.
Partition behavior
Option A
Serve last-known-good indefinitely
Option B
Expire sensitive policy and fail affected operations
Recommendation:Keep benign tuning indefinitely, but attach explicit freshness bounds to revocations and destructive permissions whose staleness creates unacceptable risk.
Follow-up interview questions
- 01How does a disconnected service know whether stale configuration is still safe?
- 02What prevents an attacker from replaying an older but correctly signed version?
- 03How would you recover from a schema change that old clients cannot parse?
- 04What is the blast radius of the emergency distribution channel itself?
Common weak answers and mistakes
- 01Making every request synchronously query the control plane.
- 02Treating all configuration as having the same consistency and expiry needs.
- 03Overwriting mutable rows so rollback and forensic history are ambiguous.
- 04Designing fast publication without proving what clients actually applied.
Interviewer evaluation rubric
Proposes a global key-value store but leaves partition behavior, versioning, and bad-config containment undefined.
Separates control and data planes, caches last-known-good state, and supports versioned staged rollout.
Adds risk classes, signed immutable versions, atomic swaps, freshness policy, reconnect control, and applied-version telemetry.
Explains authority and availability boundaries precisely, including replay protection, break-glass governance, and incremental client migration.