lerna-stack/akka-entity-replication

Entity recovery timeout should back off

negokaz opened this issue · 0 comments

Simple retries may induce failures

          case RaftProtocol.RecoveryTimeout =>
            context.log.info(
              "Entity (name: {}) recovering timed out. It will be retried later.",
              setup.entityContext.entityId,
            )
            // TODO: Enable backoff to prevent cascade failures
            throw RaftProtocol.EntityRecoveryTimeoutException(context.self.path)

akka-entity-replication/Recovering.scala at typed/replicated-entity-behavior-impl · lerna-stack/akka-entity-replication

    override def stateReceive(receive: Receive, message: Any): Unit =  
      message match {  
        case RecoveryTimeout =>  
          // to restart  
          // TODO: BackoffSupervisor を使ってカスケード障害を回避する  
          log.info("Entity (name: {}) recovering timed out. It will be retried later.", self.path.name)  
          throw EntityRecoveryTimeoutException(self.path)  

akka-entity-replication/ReplicationActor.scala at 224692c3429177fd91a5e1122c3d0f011f2351db · lerna-stack/akka-entity-replication