title: HTTP vs Thrift in microservices architecture
body: <p>I'm have just start learning about micro-services and I have a question that I cannot answer myself. (and I'm also a Java based developer)</p>
  
  <p>I have a situation like this:</p>
  
  <ol>
  <li><p>I have service A (an API service) that call Thrift services (Named T1) for get data.</p></li>
  <li><p>Then I have a service B that can use data response from A, parse these data and then generate some new data, finally, return it to client.</p></li>
  </ol>
  
  <p>The question is: Which I should use?
  B call API from A and parse (for example JSON data) with HttpClient/ AsyncHttpClient with connection pool or B direct call T1 and repeat what A do?</p>
  
  <p>IMHO, I think Thrift (with connection pooling too) is faster than HTTP call? Am I right?</p>
  
  <p>I see a lot of services that use HTTP for internal like Elastic search, Neo4j, Eureka Netflix, etc ...</p>
  
  <p>So, which one should I use? And why HTTP is so popular for internal use instead of RPC like Thrift, ProtoBuf, ...?</p>
  
  <p>Sorry for my bad english.
  Thank you in advance.</p>