title: Integrating circuitbreaker, retry and timelimiter in Resilience4j
body: <p>I am trying to use <em>Resilience4j</em> features.</p>
  <p>My use case is to combine the 3 modules:</p>
  <ul>
  <li>circuitbreaker</li>
  <li>retry</li>
  <li>timelimiter</li>
  </ul>
  <p>I want to combine all these modules and execute the method <strong>only once</strong>.</p>
  <h3>Code</h3>
  <p>Here is what I have tried.</p>
  <pre class="lang-java prettyprint-override"><code>Supplier&lt;R&gt; supplier = this::doSomething;
  
  timeLimiter.executeFutureSupplier(() -&gt; CompletableFuture.supplyAsync(supplier));
  
  return Decorators.ofSupplier(supplier)
                  .withCircuitBreaker(circuitBreaker)
                  .withRetry(retry)
                  .withBulkhead(bulkhead)
                  .decorate();
  </code></pre>
  <h3>Issue</h3>
  <p>My <code>doSomething()</code> method <strong>executes twice</strong> instead of expected once.</p>
  <p>Has anyone seen this issue earlier?</p>