Sitemap
Dave Hennit

Dave Hennit

Design engineer learning to leverage AI to build solutions, solve problems, and help emerging businesses grow. Writing about what I ship and learn.

Synchronous vs. Asynchronous

3 min readSep 2, 2026

The Invisible Force Behind Seamless Software

Imagine you are in a busy coffee shop.

In one scenario the barista takes your order, turns around, brews your espresso, steams the milk, pours the cup, hands it to you, and only then looks at the next person in line. The whole line just freezes if someone orders a ten-minute, elaborate drink.

In another scenario, the cashier takes your order, hands you a receipt with a buzzer, and calls the next customer immediately. Five other people order their drink while yours brews in the background. Your drink is ready, and your buzzer lights up.

This single difference exemplifies the core split between synchronous and asynchronous operations.

Press enter or click to view image in full size

What Do They Actually Mean?

A useful analogy is to consider the apps on your phone:

Synchronous (Blocking): If you queue up five app updates, App 1 has to finish at 100% before App 2 can start. If App 1 stalls or has a large file size, the rest of the queue is idle. Each task waits for the previous one to finish before starting.

Asynchronous (Non-Blocking): You hit “Update All,” and all five apps download simultaneously, or the system offloads the downloads to the background while you browse social media without a care. If an app finishes first, it installs immediately regardless of where it was in the queue.

How They Work Under the Hood

Program flow:

Synchronous—Linear. Step by step.

Asynchronous—separate. Together.

Get Dave Hennit’s stories in your inbox

Join Medium for free to get updates from this writer.

Thread Status:

Synchronous (Blocking) — The system waits for the current task to return a result.

Asynchronous (Non-blocking)—Move heavy tasks to background workers or event loops.

Management of Delay:

Synchronous—A bottleneck stops the whole chain of execution.

Asynchronous—The system is doing the immediate tasks and waiting to receive any background promises or callbacks.

Predictability:

Synchronous—High; changes of state occur in a predetermined deterministic order.

Asynchronous—Need to handle race conditions and out-of-order responses.

Why the Difference Matters

There is no one best way, software architecture is about the right model for the right problem.

1. Avoid Frozen Interfaces—User interfaces today are very asynchronous. When you make a credit card payment online, it takes time to verify funds with a banking network. If that operation ran synchronously, the entire browser window would freeze up, preventing you from scrolling or canceling it until the bank responded. Running it asynchronously allows the app to show a loading spinner and keep the page responsive.

2. Guarding Critical Dependencies

Synchronous execution is still important when the order of steps cannot be violated. For example, during an important database migration or a critical file deletion sequence, you want Step B to never run if Step A fails. In financial accounting, the process of debiting Account A must strictly occur before crediting Account B to avoid balance errors.

By balancing these patterns, developers can keep interfaces fast and responsive without sacrificing the strict order required for sensitive operations.

#ProductDesigner #SoftwareDevelopment #BeginnerDevelopers #Tech #SoftwareArchitecture

--

--

I am a passionate product designer learning to leverage AI to build solutions, solve problems, and help emerging businesses grow.

See more from me