Class FaultTolerance

java.lang.Object
io.helidon.faulttolerance.FaultTolerance

public final class FaultTolerance extends Object
System wide fault tolerance configuration and access to a customized sequence of fault tolerance handlers.

Fault tolerance provides the following features:

  • Async - invoke a blocking synchronous call asynchronously in an executor service
  • Bulkhead - limit number of parallel requests to a resource
  • CircuitBreaker - stop trying to request a failing resource until it becomes available
  • Fallback - fall back to another supplier of result in case the usual one fails
  • Retry - try to call a supplier again if invocation fails
  • Timeout - time out a request if it takes too long
See Also:
  • Method Details

    • config

      public static void config(Config config)
      Configure Helidon wide defaults from a config instance.
      Parameters:
      config - config to read fault tolerance configuration
    • executor

      public static void executor(Supplier<? extends ExecutorService> executor)
      Configure Helidon wide executor service for Fault Tolerance.
      Parameters:
      executor - executor service to use, such as for Async
    • scheduledExecutor

      public static void scheduledExecutor(Supplier<? extends ScheduledExecutorService> executor)
      Configure Helidon wide scheduled executor service for Fault Tolerance.
      Parameters:
      executor - scheduled executor service to use, such as for Retry scheduling
    • initialized

      public static boolean initialized()
      Mostly used for testing. This class is considered to be initialized if any of its (lazy valued) executors were returned.
      Returns:
      boolean indicating whether init took place
    • builder

      public static FaultTolerance.Builder builder()
      A builder to configure a customized sequence of fault tolerance handlers.
      Returns:
      a new builder
    • typedBuilder

      public static <T> FaultTolerance.TypedBuilder<T> typedBuilder()
      A typed builder to configure a customized sequence of fault tolerance handlers.
      Type Parameters:
      T - type of result
      Returns:
      a new builder