def initial_normal(executor, &block)
      future = RichFuture.new(executor: executor) do
        args = wait_dependencies
        timeout_block(args, &block)
      end
      future.add_observer do |_, _, reason|
        metrics(reason)
      end
      future
    end
def initial_normal(executor, &block)
      future = RichFuture.new(executor: executor) do
        args = wait_dependencies
        timeout_block(args, &block)
      end
      future.add_observer do |_, _, reason|
        metrics(reason)
      end
      future
    end
timeout_block do
   retryable_block do
     breakable_block do
       block.call
     end
   end
 end