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:

  • ZLayers (with zio-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.
READ LESS
4 upvotes·23.6K views
Avatar of Danylo Yeleiko

Danylo Yeleiko

Tech lead @ AccountIQ at Bambora