title: Low Level Protocol for Microservice Orchestration
body: <p>Recently I started working with Microservices, I wrote a library for service discovery using Redis to store every service's url and port number, along with a TTL value for the entry. It turned out to be an expensive approach since for every cross service call to any other service required one call to Redis. Caching didn't seem to be a good idea, since the services won't be up all the times, there can be possible downtimes as well.</p>
  
  <p>So I wanted to write a separate microservice which could take care of the orchestration part. For this I need to figure out a really low level network protocol to take care of the exchange of heartbeats(which would help me figure out if any of the service instance goes unavailable). How do applications like zookeeperClient, redisClient take care of heartbeats?</p>
  
  <p>Moreover what is the industry's preferred protocol for cross service calls? 
  I have been calling REST Api's over HTTP and eliminated every possibility of Joins across different collections.</p>
  
  <p>Is there a better way to do this?</p>
  
  <p>Thanks.</p>