Seminars and other activities
Short abstract: working code examples that illustrate how the deployment/behaviour division of Jolie programs makes any communicating endpoint a microservices: whether it is a web server, an architectural component or even an IoT device. Click here to see the full abstract.
One of the main tenets of the microservice approach is to loose the ties among (distributed) software components (i.e., microservices), so that they can be developed, evolved, and scaled independently. However, there is one often-overlooked element that binds indirectly together collaborating microservices: communication. This binding consists of the dependencies on the libraries and/or frameworks that support the communication protocols and data formats that are chosen in the design of the microservice architecture. Regardless of whether this choice was conscious or not, it can quickly lead to technical debt unless it is carefully managed: the programming paradigms of each library tend to leak into the core logic of the microservice, making switching to other communication stacks difficult or even infeasible. All of a sudden, the so-advertised resilience of microservices gave way to an inflexible and limiting architecture.
In this hands-on demonstration we will see, using the Jolie language, how suitable language abstractions can loose these implicit couplings. The ultimate aim is to experiment how, through the lens of Jolie, web services, traditional programs, and even IoT devices are all the same: microservices, all the way down.