title: Spring boot + spring-boot-starter-web + RestController + runBlocking
body: <p>I'm quite new to SB and I know there is WebFlux but what speaks against the combination WebMvc + Kotlin coroutines?</p>
  
  <pre class="lang-kotlin prettyprint-override"><code>    @GetMapping("/wait")
      fun waitForSeconds(@RequestParam(value = "seconds", defaultValue = "1") seconds: Long): String = runBlocking {
          val now = DateTime.now()
  
          val first = async {
              waitAndGive(seconds, 1)
          }
          val second = async {
              waitAndGive(seconds, 2)
          }
  
          val result1 = first.await()
          val result2 = second.await()
  
          val then = DateTime.now()
  
          val formatter = DateTimeFormat.forPattern("HH:mm:ss")
          """
              Diff between: ${formatter.print(now)} and ${formatter.print(then)} is: 
              ${Seconds.secondsBetween(now, then).seconds}sec(s)&lt;br&gt;
              Result1: $result1 / Result2: $result2 
          """.trimIndent()
      }
  
  suspend fun waitAndGive(wait: Long, giveMe: Int): Int {
      delay(wait * 1000)
      return giveMe
  }
  </code></pre>
  
  <p>If I feed in 15secs it returns:</p>
  
  <pre><code>Diff between: 09:46:25 and 09:46:40 is: 15sec(s)
  Result1: 1 / Result2: 2
  </code></pre>
  
  <p>So the two async-calls ran in parallel - good!</p>
  
  <p><strong>This works just nice or are there any hidden problems I didn't realize?</strong></p>
  
  <p>What I think how it works:</p>
  
  <ol>
  <li>A request comes in</li>
  <li>Tomcat picks a new/existing thread from it's thread-pool</li>
  <li>Kotlin kicks in and runs the two coroutines in parallel (within this thread) </li>
  <li>runBlocking "normalizes" everything for the RestController</li>
  </ol>
  
  <p>Do you agree? Do I miss something?</p>