The timeout law

A timeout is enforced for every instance implementation of a TalosCircuitBreaker.

import cats.effect._

import scala.util.Try
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext

import talos.circuitbreakers.akka._

implicit lazy val actorSystem: ActorSystem[_] = ActorSystem(Behaviors.ignore, "ConsoleTest")

lazy val circuitBreaker = AkkaCircuitBreaker(
    "my_circuit_breaker", 5, resetTimeout = 2 seconds, callTimeout = 5 seconds

implicit lazy val timerIO = IO.timer(
lazy val timingOut = IO.sleep(6 seconds)

lazy val protectedCall: IO[Unit] = circuitBreaker.protect(timingOut)