Practice
Solution
Step 1: Identify ingestion decoupling need
Relational DB (A) blocks user upload due to synchronous writes; CDN (C) caches for delivery, not ingestion; REST API (D) triggers blocking transcoding.Step 2: Choose buffering component
Kafka (B) buffers uploads asynchronously, enabling fast user response and reliable processing.Final Answer:
Option A -> Option AQuick Check:
Kafka buffers uploads asynchronously for scalable ingestion [check]
Solution
Step 1: Identify coordination bottlenecks in centralized DB
Auto-increment keys require coordination, causing latency and contention at high scale.Step 2: Evaluate decentralized timestamp-based ID generators
Snowflake-style IDs combine timestamp and node ID, enabling scalable, ordered unique IDs without coordination.Final Answer:
Option A -> Option AQuick Check:
Decentralized timestamp + node ID -> scalable unique ID generation [check]
Solution
Step 1: Understand absence of bulkhead isolation
Without bulkheads, saturation causes blocking (B) and thread starvation, but automatic rejection (C) is a bulkhead feature. Queuing indefinitely (A) is unlikely without bulkheads. Load balancers (D) don't detect internal resource saturation.Step 2: Trace failure impact
Without bulkheads, blocking threads cause cascading failures; with bulkheads, requests are rejected to contain blast radius.Final Answer:
Option C -> Option CQuick Check:
Without bulkheads, blocking causes cascading failures [check]
Solution
Step 1: Role of manifest updates in HLS
Manifest updates inform clients about new segments and available bitrates, enabling selective fetching.Step 2: Consequence of missing manifest updates
Without updates, clients cannot know which segments to fetch next, leading them to request all variants to avoid stalls, wasting bandwidth.Final Answer:
Option A -> Option AQuick Check:
Missing manifest updates cause clients to fetch all variants, wasting bandwidth [check]
Solution
Step 1: Understand Paxos proposer failure impact
If the proposer crashes before majority acceptance, no new values are chosen but previously accepted values remain safe.Step 2: Consequence on system progress
The system cannot make progress until a new proposer initiates a new round, but no data corruption occurs.Final Answer:
Option A -> Option AQuick Check:
Leader crash before majority -> no new values chosen, safety preserved [check]
