It may sound strange that we would want to keep an architecture synchronous—especially on the web. What about the laggy user experience that happens when everything is performed synchronously?
It's just the Flux data-flow that's synchronous, not the entire application. In this section, we'll touch upon why keeping the core data-flow mechanisms of our architecture synchronous is a good idea. Next, we'll talk about how we should encapsulate asynchronous behavior in our application. Finally, we'll go over the general semantics of how asynchronous action creator functions work.
The simple answer is that anything that's asynchronous introduces a level of uncertainty that wouldn't otherwise be there. It can be tempting, given all the new hotness in web browsers, to make everything happen in parallel—to leverage as many concurrent web requests and as many processor cores as we possibly can. Once we go down this path, it's hard to turn back, and the further...