  Enterprises in their journey to the cloud, want to decompose their monolith
applications into microservices to maximize cloud benefits. Current research
focuses a lot on how to partition the monolith into smaller clusters that
perform well across standard metrics like coupling, cohesion, etc. However,
there is little research done on taking the partitions, identifying their
dependencies between the microservices, exploring ways to further reduce the
dependencies, and making appropriate code changes to enable robust
communication without modifying the application behaviour.
  In this work, we discuss the challenges with the conventional techniques of
communication using JSON and propose an alternative way of ID-passing via APIs.
We also devise an algorithm to reduce the number of APIs. For this, we
construct subgraphs of methods and their associated variables in each class and
relocate them to their more functionally aligned microservices. Our
quantitative and qualitative studies on five public Java applications clearly
demonstrate that our refactored microservices using ID have decidedly better
time and memory complexities than JSON. Our automation reduces 40-60\% of the
manual refactoring efforts.
