anchor.diff:  Bandwidth.classic(100, Refill.greedy(100, Duration.ofMinutes(1)))
   ----
   
  -Intervally::
  -This type of refill regenerates tokens in intervally manner. "Intervally" in opposite to "greedy"  will wait until whole period will be elapsed before regenerate the whole amount of tokens. +
  +Interval::
  +This type of refill regenerates tokens in an interval manner. "Interval" in opposite to "greedy"  will wait until the whole period will be elapsed before regenerating the whole amount of tokens. +
   +
   .Example: +
   +
  
positive.code: ----
  
  IntervallyAligned::
  This type of refill regenerates that does refill of tokens in intervally manner. Intervally" in opposite to "greedy"  will wait until whole period will be elapsed before regenerate the whole amount of tokens. In additional to *Intervally* it is possible to specify the time when first refill should happen.  This type can be used to configure clear interval boundary i.e. start of second, minute, hour, day. To get more details reed javadocs for `Refill#intervallyAligned` method. +
  +
  .Example:
  [source, java]
  
negative.code: 
  [[bucket, Bucket]]
  ==== Bucket
  `Bucket` is a rate-limiter that is implemented on the top of ideas of well-known https://en.wikipedia.org/wiki/Token_bucket[Token Bucket algorithm].
  In the Bucket4j library code the `Bucket` is represented by interface https://github.com/vladimir-bukhtoyarov/bucket4j/blob/{minor-number}/bucket4j-core/src/main/java/io/github/bucket4j/Bucket.java[io.github.bucket4j.Bucket].
  
  .Bucket aggregates the following parts:
  * <<bucket-bonfiguration>> specifies an immutable collection of limitation rules that are used by the bucket during its work.
  * <<bucket-state>> the place where bucket stores mutable state like the amount of currently available tokens.
  
  A bucket can be constructed via a special builder API <<local-bucket-builder>> that is available by factory method:
  [source, java]
  ----
  Bucket bucket = Bucket.builder()
  