title: Why API Gateway is recommended for Microservices?
body: <p>For microservices, the common design pattern used is API-Gateway. I am a bit confused about its implementation and implications. My questions/concerns are as follows:</p>
  
  <ol>
  <li>Why other patterns for microservices are not generally discussed? If they are, then did I miss them out?</li>
  <li>If we deploy a gateway server, isn't it a bottleneck?</li>
  <li>Isn't the gateway server vulnerable to crashes/failures due to excessive requests at a single point? I believe that the load would be enormous at this point (and keeping in mind that Netflix is doing something like this). Correct me if I am wrong in understanding.</li>
  <li>Stream/download/upload data (like files, videos, images) will also be passing through the gateway server with other middleware services?</li>
  <li>Why can't we use the proxy pattern instead of Gateway?</li>
  </ol>
  
  <p>From my understanding, in an ideal environment, a gateway server would be entertaining the requests from clients and responding back after the Microservices has performed the due task.</p>
  
  <p>Additionally, I was looking at Spring Cloud Gateway. It seems to be something that I am looking for in a gateway server but the routing functionality of it confuses me if it's just a routing (redirect) service and the microservice would be directly responsible for the response to the client.</p>