Core concept

val ec: ExecutionContext = ExecutionContext.fromExecutorService(
  Executors.newFixedThreadPool(8))
Advertisement

How it works

Wrong EC = wrong thread pool. Blocking on default EC starves.

Advertisement

Trade-offs + gotchas

Separate CPU-bound + IO-bound work.