Choose synchronous (a shared clock) when you want to avoid the accuracy burden of matched timing, support a wide or variable range of speeds, or clock devices that can't keep precise time on their own. Because the clock travels with the data, a synchronous bus like SPI or I2C works at whatever rate the slowest participant tolerates, can be paused or slowed arbitrarily (I2C even lets a slave stretch the clock), and doesn't care about the devices' internal oscillator accuracy, useful for cheap sensors with imprecise clocks. You'd choose asynchronous (UART) when you want to save the clock wire and connect over longer or simpler links where running an extra synchronized clock line is impractical, accepting that both ends must hold accurate matched baud (within a few percent) and that there's no built-in flow-rate negotiation. In short: synchronous trades a wire for timing robustness and speed flexibility; asynchronous trades timing precision for one fewer wire.
Communication Protocols · Interview question
When would you choose a synchronous bus over an asynchronous one?
A strong answer
What a weak answer sounds like
You know the answer. Do you know what gets you dinged?
Pro breaks down the answer most candidates actually give to this question — and the specific reason an interviewer marks it down. It’s the difference between sounding correct and sounding senior, on all 472 questions.
From the lesson
Serial vs Parallel, Sync vs Async
The two axes that classify every bus: serial vs parallel (one wire or many) and synchronous vs asynchronous (shared clock or agreed-upon rate), and where UART, SPI, I2C, and CAN land.