Interface Bulkhead

All Superinterfaces:
FtHandler, RuntimeType.Api<BulkheadConfig>

@Contract public interface Bulkhead extends FtHandler, RuntimeType.Api<BulkheadConfig>
Bulkhead protects a resource that cannot serve unlimited parallel requests.

When the limit of parallel execution is reached, requests are enqueued until the queue length is reached. Once both the limit and queue are full, additional attempts to invoke will end with a failed response with BulkheadException.

  • Method Details

    • create

      static Bulkhead create(BulkheadConfig config)
      Create Bulkhead from its configuration.
      Parameters:
      config - configuration of a bulkhead to create
      Returns:
      a new bulkhead
    • create

      static Bulkhead create(Consumer<BulkheadConfig.Builder> builderConsumer)
      Create Bulkhead customizing its configuration.
      Parameters:
      builderConsumer - consumer to update configuration of bulkhead
      Returns:
      a new bulkhead
    • builder

      static BulkheadConfig.Builder builder()
      Create a new bulkhead fluent API builder.
      Returns:
      a new bulkhead builder
    • stats

      Provides access to internal stats for this bulkhead.
      Returns:
      internal stats.
    • cancelSupplier

      boolean cancelSupplier(Supplier<?> supplier)
      Can be used to cancel a supplier while queued.
      Parameters:
      supplier - the supplier
      Returns:
      outcome of cancellation