title: Conceptual question regarding suspend and Deferred
body: <p>I have a question about when to use suspend and when not. My APIRepo class has a function like this -</p>
  
  <pre><code>override suspend fun retrieveDataFromRemote(): MyResult {
          if (utility.checkDeviceInternetConnection()) {
              try {
                  val result = remoteInterface.getData().await()
                  return ...
              } catch (t: Throwable) {
                  return ...
              }
          } else {
              return ...
          }
      }
  </code></pre>
  
  <p>My Remote interface code looks like this -</p>
  
  <pre><code>@GET("/data/mydata")
  fun getData(): Deferred&lt;Response&lt;MyModel&gt;&gt;
  </code></pre>
  
  <p>As you can see my <code>RemoteInterface</code> has no <code>suspend</code> keyword and returns a <code>Deferred</code>. This works totally fine. But when I add a <code>suspend</code> keyword to <code>getData()</code>, then I dont get the API response. Why is it like that? Does it have something to do with the <code>Deferred</code>? </p>