title: When should you block / subscribe to a Mono/Flux?
body: <p>Say you have some fluxes and monos</p>
  <pre><code>val people: Flux&lt;Person&gt; = repo.getPeople()
  val peopleCount: Mono&lt;Int&gt; = people.count()
  </code></pre>
  <p>and from e.g. a WebFlux controller you return a Mono&lt;Response&gt;:</p>
  <pre><code>data class Response(
      val people: List&lt;People&gt;,
      val personCount: Int
  )
  </code></pre>
  <p>Where is the appropriate place in  an application to resolve the flux and the mono to a List and Int respectively? Do you just block() everything? Is there a way to get the framework to resolve everything?</p>
  <p>EDIT: I guess my main confusion is all the tutorials I've seen the fields inside the response object are not in fact reactive, so it seems like I need to resolve everything before returning the object from the controller. If the response object looked like this it would make more sense to me</p>
  <pre><code>data class Response(
      val people: Flux&lt;People&gt;,
      val personCount: Mono&lt;Int&gt;
  )
  </code></pre>