manage side effects. They help to manage unpredictable program parts such as mutating shared state, I/O. In scala most popular effect systems are cats-effect and ZIO. Besides that - effect systems come with runtime for managing concurrency. cats-effect runtime provides thread pool for: computation tasks blocking operations
they run on top of JVM threads. Based on cooperative multitasking (instead of pre-emptive like e.g. OS) Semantically blocking (doesn't block underlying thread) Purely functional composition, timeouts, cancellation