Decisions 1
Danylo Yeleiko
Tech lead @ AccountIQ at Bambora
We searched an effect monad to replace scala.concurrent.Future
and move our tech stack away from 'Scala as better Java'.
The requirements for the replacement were:
- Battle-tested & documented;
- Type-safe;
- Fiber-safe (not leaking concurrent resources).
ZIO was picked for the following reasons:
-
ZLayer
s (withzio-magic
) that enabled us to structure the application & do DI in a functional way; - Typed error channel for safer handling of business-logic exceptions;
- Built-in
Scheduler
and retries / cancellation; - Steeper learning curve when compared to cats-effect.
4 23.7K