  Microservices is an emerging development paradigm where software is obtained
by composing autonomous entities, called (micro)services. However, microservice
systems are currently developed using general-purpose programming languages
that do not provide dedicated abstractions for service composition. Instead,
current practice is focused on the deployment aspects of microservices, in
particular by using containerization. In this chapter, we make the case for a
language-based approach to the engineering of microservice architectures, which
we believe is complementary to current practice. We discuss the approach in
general, and then we instantiate it in terms of the Jolie programming language.
