title: How to filter a flux for all elements having the highest value
body: <p>How do I filter a publisher for the elements having the highest value without knowing the highest value beforehand?</p>
  
  <p>Here is a little test to illustrate what I'm trying to achieve:</p>
  
  <pre><code>@Test
  fun filterForHighestValuesTest() {
      val numbers = Flux.just(1, 5, 7, 2, 8, 3, 8, 4, 3)
          // what operators to apply to numbers to make the test pass?
  
      StepVerifier.create(numbers)
          .expectNext(8)
          .expectNext(8)
          .verifyComplete()
  }
  </code></pre>
  
  <p>Ive started with the reduce operator:</p>
  
  <pre><code>@Test
  fun filterForHighestValuesTestWithReduce() {
  
      val numbers = Flux.just(1, 5, 7, 2, 8, 3, 8, 4, 3)
          .reduce { a: Int, b: Int -&gt; if( a &gt; b) a else b }
  
      StepVerifier.create(numbers)
          .expectNext(8)
          .verifyComplete()
  }
  </code></pre>
  
  <p>and of course that test passes but that will only emit a single <code>Mono</code> whereas I would like to obtain a <code>Flux</code> containing all the elements having the highest values e.g. 8 and 8 in this simple example.</p>