AkkaRef: Actor model refactoring into typed actors
M. Zdanavičius (TU Delft - Electrical Engineering, Mathematics and Computer Science)
Burcu Külahçıoğlu Ozkan – Mentor (TU Delft - Software Engineering)
Burcu Ozkan – Graduation committee member (TU Delft - Software Engineering)
R.R. Venkatesha Prasad – Graduation committee member (TU Delft - Networked Systems)
More Info
expand_more
Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.
Abstract
This thesis addresses the challenge of refactoring untyped actor systems into typed ones, particularly within the Scala ecosystem using Akka framework \cite{akkaTypedDocs/Online}. The actor model, with its message-passing architecture, offers a solution to concurrency and scalability issues in distributed systems, but transitioning from untyped Akka Classic to typed Akka actors is a complex and error-prone task. This work proposes a solution through the development of a communication flow graph that captures actor interactions and message exchanges, which is then used to automate the refactoring process while preserving system behavior and communication integrity.
Key contributions include the implementation of the communication flow graph and an automated refactoring tool that translates untyped actor systems to typed ones. The evaluation demonstrates that while the refactored systems maintain communication patterns and functionality, they may introduce a slight reduction in maintainability. Additionally, the resulting effectiveness of the refactored benchmarks varies depending on the complexity of the underlying system.
Lastly, this research sets the foundation for improving refactoring tooling aimed at actor systems, extending the usability of the communication flow graph for the automated documentation of actor systems, and highlights the need to revisit traditional software quality metrics to suit actor-based systems.