  Microservices is an architectural style inspired by service-oriented
computing that has recently started gaining popularity. Jolie is a programming
language based on the microservices paradigm: the main building block of Jolie
systems are services, in contrast to, e.g., functions or objects. The
primitives offered by the Jolie language elicit many of the recurring patterns
found in microservices, like load balancers and structured processes. However,
Jolie still lacks some useful constructs for dealing with message types and
data manipulation that are present in service-oriented computing. In this
paper, we focus on the possibility of expressing choices at the level of data
types, a feature well represented in standards for Web Services, e.g., WSDL. We
extend Jolie to support such type choices and show the impact of our
implementation on some of the typical scenarios found in microservice systems.
This shows how computation can move from a process-driven to a data-driven
approach, and leads to the preliminary identification of recurring
communication patterns that can be shaped as design patterns.
