Sync versus async describes two ways software handles a task it is waiting on. Synchronous (sync) means the system asks, then stands still until it gets the answer before moving on. Asynchronous (async) means it asks, walks away to do other things, and collects the answer whenever it is ready. The difference is whether everything else has to wait.
Picture ordering coffee. The synchronous way is to stand at the counter doing nothing until your cup is handed over. The async way is to get a buzzer, sit down, reply to emails, and walk up only when it goes off. You got the same coffee, but in the async version you did not freeze in place. That is exactly the idea behind asynchronous processing: slow tasks should not block everything behind them.
In automation this shows up constantly. A sync step holds the whole workflow until it returns, which is fine when it is fast. A slow step, sending 500 emails, generating a report, is better fired off async, often through a message queue that holds the work, or a webhook that delivers the result back later.
Async is not free, though. The moment a task runs in the background you have to ask how you will find out it finished, and what happens if it fails halfway with no one watching. Sync keeps that simple: the answer comes straight back, success or error, in one breath. So the rule of thumb is to stay sync while a step is quick and the caller genuinely needs the result now, and reach for async only once the wait would otherwise hold up real work.
At TopDevs we pick sync or async per step based on how slow it is, so a single heavy task never freezes a client’s whole process.