The book says:
Currently, async_stream/3 assumes we want the results in the same order as they were originally. This order preservation can potentially slow down our processing, because async_stream/3 will wait for a slow process to complete before moving on to the next.
While the documentation for async_stream/3 clearly states:
Note that regardless of what
:ordered
is set to, the tasks will process asynchronously.
So saying that async_stream/3 will wait for a slow process is wrong (it can be easily tested). Although, saying that it can potentially slow down our processing is somewhat true - Elixir has to buffer results, so it may take a little bit more time and for sure require more memory.