Abstract of Master Thesis

Maximilian Irro. Concurrent Programming with Actors and Microservices. Master Thesis. 2018

doi:10.34726/hss.2018.56763

Abstract

Common problems require applications to manage multiple concerns simultaneously. A convenient approach is the concept of concurrent programming. In this thesis, we investigate two different models for introducing concurrent computational units into software architectures. One approach is the actor model that defines theoretically well-known constructs supporting concurrent, parallel and distributed execution in a transparent way. The other approach is an architectural style based on microservices, a recent trend that gained academic and industrial popularity. Microservices facilitate many principles of the old Unix philosophy by composing complex functionality through small, independent, highly cohesive and loosely coupled executables. These programs interoperate via lightweight, technology-heterogeneous messaging channels. The deployment modality of microservices conceives concurrent execution through the operating system scheduler. This thesis compares the programming of concurrent computation through actors and microservices with respect to a non-trivial concurrent system scenario. We argue that both approaches share many conceptual similarities and show few but significant differences. Both models have the same expressive capabilities regarding concurrent programming concerns like communication and scalability, but are subject to different trade-offs. We provide implementations of the system scenario based on actor and microservice architectures. Benchmark results of these implementations suggest that actors provide better system efficiency through a smaller codebase. Microservice architectures consume significantly more system resources and suffer especially from purely synchronous communication mechanisms.

Keywords: concurrent programming, actors, microservices

@mastersthesis{Irro18,
  author    = {Maximilian Irro},
  title     = {Concurrent Programming with Actors and Microservices},
  school    = {TU Wien},
  year      = {2018},
  keywords  = {concurrent programming, actors, microservices},
  timestamp = {20180930},
  url       = {https://repositum.tuwien.ac.at/urn:nbn:at:at-ubtuw:1-115820}
}