title: Async response from API Gateway in microservices
body: <p>In microservice architecture, It is suggested that:</p>
  
  <ol>
  <li><p>client app to API gateway communication should be synchronous (like
  REST over http).</p></li>
  <li><p>API gateway to micro-service communication should also be
  synchronous</p></li>
  <li><p>But service to service communication should be asynchronous.</p></li>
  </ol>
  
  <blockquote>
    <p>Another rule you should try to follow, as much as possible, is to use
    only asynchronous messaging between the internal services, and to use
    synchronous communication (such as HTTP) only from the client apps to
    the front-end services (API Gateways plus the first level of
    microservices).</p>
  </blockquote>
  
  <p><a href="https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/architect-microservice-container-applications/asynchronous-message-based-communication" rel="nofollow noreferrer">https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/architect-microservice-container-applications/asynchronous-message-based-communication</a></p>
  
  <p>Now, If I understood it right, when user requests to API gateway, and in turn it calls the fist service, it will return a acknowledgement (with some GUID) which will be passed to client application. But services will keep on executing the request. 
  Now the question pop ups, how will they notify the client application when the request is processed completely. One way is that client can check the status using the GUID passed to it. </p>
  
  <p>But can it be done with some push notification? How can we integrate server to server push notification?</p>