anchor.diff:  
   [source,java]
   ----
  -Bulkhead bulkhead = Bulkhead.ofDefaults("backendName");
  +// Create a custom Bulkhead configuration
  +BulkheadConfig config = BulkheadConfig.custom()
  +    .maxConcurrentCalls(150)
  +    .maxWaitTime(100)
  +    .build();
  +
  +Bulkhead bulkhead = Bulkhead.of("backendName", config);
   
   Supplier<String> supplier = Bulkhead
       .decorateSupplier(bulkhead, backendService::doSomething);
  +----
  +
  +[[threadpoolbulkhead]]
  +=== ThreadPoolBulkhead
  +The following example shows how to execute a lambda expression with a ThreadPoolBulkhead which uses a bounded queue and a fixed thread pool.
  +
  +[source,java]
  +----
  +// Create a custom Bulkhead configuration
  +ThreadPoolBulkheadConfig config = ThreadPoolBulkheadConfig.custom()
  +    .maxThreadPoolSize(10)
  +    .coreThreadPoolSize(2)
  +    .queueCapacity(20)
  +    .build();
  +
  +ThreadPoolBulkhead bulkhead = ThreadPoolBulkhead.of("backendName", config);
  +
  +CompletionStage<String> supplier = ThreadPoolBulkhead
  +    .executeSupplier(bulkhead, backendService::doSomething);
   ----
   
   [[events]]
  
positive.code: * <<circuitbreaker>>
  * <<ratelimiter>>
  * <<bulkhead>>
  * <<events>>
  
  [[circuitbreaker]]
  
negative.code: ----
  
  
  NOTE: Resilience4j also provides Reactor operators for `RateLimiter`, `Bulkhead` and `Retry`. Find out more in our *https://resilience4j.readme.io/docs/getting-started-1[User Guide]*
  
  [[ratelimiter]]
  === RateLimiter
  