Java is a very common platform choice for running production code for many applications across many domains. When data scientists create a model for existing applications, Java is a natural choice, since it can be seamlessly integrated into the code. This case is straightforward, you create a separate package, implement your models there, and make sure other packages use it. Another possible option is packaging the code into a separate JAR file, and include it as a Maven dependency.
But there is a different architectural approach for combining multiple components of a large system--the microservices architecture. The main idea is that a system should be composed of small independent units with their own lifecycle--their development, testing, and deployment cycles are independent of all other components.
These microservices typically communicate via REST API, which is based on HTTP. It is based on four...