anchor.diff:  
   [options="header"]
   |===
  -|Name |Links |Premise |Slogan |How does it mitigate?
  +|name |how does it work? | description |slogans |links
   
   |*Retry*
  -|<<circuitbreaker,overview>>, https://resilience4j.readme.io/docs/retry[documentation]
  +|repeats failed executions
   |Many faults are transient and may self-correct after a short delay.
  -|"Maybe it’s just a blip"
  -|Allows configuring automatic retries.
  +|"Insert coin to try again",
  +"Maybe it’s just a blip"
  +|<<circuitbreaker-retry-fallback,overview>>,
  +https://resilience4j.readme.io/docs/retry[documentation]
   
   |**Circuit Breaker**
  -|<<circuitbreaker,overview>>,  https://resilience4j.readme.io/docs/circuitbreaker[documentation]
  -|When a system is seriously struggling, failing fast is better than making users/callers wait.
  -Protecting a faulting system from overload can help it recover.
  +|temporary blocks possible failures
  +|When a system is seriously struggling, failing fast is better than making clients wait.
   |"Stop doing it if it hurts",
  -"Give that system a break"
  -|Breaks the circuit (blocks executions) for a period, when faults exceed some pre-configured threshold.
  -
  -//|**Rate Limiter**
  -//|<<bulkhead,overview>>, https://resilience4j.readme.io/docs/ratelimiter[documentation]
  -//|
  -//|"Well, it'll work next time"
  -//|
  +"Give that system a break",
  +"Baby, don't hurt me, no more"
  +|<<circuitbreaker-retry-fallback,overview>>,
  +https://resilience4j.readme.io/docs/circuitbreaker[documentation],
  +link:resilience4j-feign/README.adoc[Feign],
  +link:resilience4j-retrofit/README.adoc[Retrofit]
  +
  +|**Rate Limiter**
  +| limits executions/period
  +| Prepare for a scale and establish reliability and HA of your service.
  +|"That's enough for this minute!",
  +"Well, it'll work next time"
  +|<<bulkhead,overview>>,
  +https://resilience4j.readme.io/docs/ratelimiter[documentation],
  +link:resilience4j-feign/README.adoc[Feign],
  +link:resilience4j-retrofit/README.adoc[Retrofit]
   
   |**Time Limiter**
  -|
  +|limits duration of execution
   |Beyond a certain wait, a success result is unlikely.
   |"Don’t wait forever"
  -|Guarantees the caller won’t have to wait beyond the timeout.
  +|
   
   |**Bulkhead**
  -| <<bulkhead,overview>>, https://resilience4j.readme.io/docs/bulkhead[documentation]
  -| When a process faults, multiple failing calls backing up can easily swamp resource (eg. threads/CPU) in a host.
  -A faulting downstream system can also cause `backed-up' failing calls upstream.
  -Both risk a faulting process bringing down a wider system.
  -|"One fault shouldn’t sink the whole ship"
  -|Constrains the governed actions to a fixed-size resource pool, isolating their potential to affect others.
  +|limits concurrent executions
  +| Resources are isolated into pools so that if one fails, the others will continue.
  +|"One fault shouldn’t sink the whole ship",
  +"Please, please, not all at once."
  +| <<bulkhead,overview>>,
  +https://resilience4j.readme.io/docs/bulkhead[documentation]
   
   |**Cache**
  -|
  +|memorizes a successful result
   | Some proportion of requests may be similar.
   |"You’ve asked that one before"
  -|Provides a response from cache if known.
  -Stores responses automatically in cache, when first retrieved.
  +|
   
   |**Fallback**
  -|<<circuitbreaker,overview>>
  +|provides an alternative result for failures
   |Things will still fail - plan what you will do when that happens.
  -|"Degrade gracefully"
  -|Defines an alternative value to be returned (or action to be executed) on failure.
  +|"Degrade gracefully",
  +"A bird in the hand is worth two in the bush"
  +|<<circuitbreaker-retry-fallback,Try::recover>>,
  +link:resilience4j-feign/README.adoc[Feign]
   
   |===
   
  -Above table was based on https://github.com/App-vNext/Polly#resilience-policies[Polly: resilience policies].
  -
  -== Spring Boot demo
  +Above table is based on https://github.com/App-vNext/Polly#resilience-policies[Polly: resilience policies].
  +
  +== Spring Boot
   
   Setup and usage in Spring Boot 2 is demonstrated https://github.com/resilience4j/resilience4j-spring-boot2-demo[here].
   
   == Usage examples
   
  -* <<circuitbreaker>>
  -* <<ratelimiter>>
  -* <<bulkhead>>
  -* <<threadpoolbulkhead>>
  -* <<events>>
  -
  -[[circuitbreaker]]
  +[[circuitbreaker-retry-fallback]]
   === CircuitBreaker, Retry and Fallback
   
   The following example shows how to decorate a lambda expression (Supplier) with a CircuitBreaker and how to retry the call at most 3 times when an exception occurs.
  
positive.code:     .compose(CircuitBreakerOperator.of(circuitBreaker))
  ----
  
  NOTE: Resilience4j also provides RxJava operators for `RateLimiter`, `Bulkhead` and `Retry`. Find out more in our *https://resilience4j.readme.io/docs/getting-started-2[User Guide]*
  
  === CircuitBreaker and Reactor
  
  The following example shows how to decorate a Mono by using the custom Reactor operator.
  
  
negative.code: String result = circuitBreaker.executeSupplier(backendService::doSomething);
  ----
  
  ==== CircuitBreaker and RxJava2
  
  The following example shows how to decorate an Observable by using the custom RxJava operator.
  
  