Lagom strictly separates the API definition from its actual implementation. This brings some advantages, such as separation of concerns, easy understanding of the contract of a service, the possibility to have multiple implementations for a given API and straightforward communication between services by just importing the API module. This separation occurs by having different modules at the project level.
The service descriptor is the main piece in the API module. It describes what the different endpoints of your service are. This happens by describing each endpoint with a call identifier. These call identifiers characterize the endpoint name as well as the expected request and response types through the ServiceCall definition. Moreover, the call identifier tells which underlying transport network protocol should be used. In this recipe, we will...