Leverage Concurrency Efficiently When Managing Multiple Tasks in Elixir
Builds from Task.start and Task.async to Task.async_stream, showing why one process per item breaks at scale and how max_concurrency, ordering, and timeouts trade off against each other.