The Data Management of a Microservices Migration of Embedded Software - Strategies and Challenges in Migrating Embedded Software to Microservices Architecture - Hedenäs Bennet, Oscar; Jyborn, Alexander (My University, 2024)
Technology advances at a rapid pace and migrating from traditional embedded systems to a microservices architecture (MSA) has become essential for organizations aiming to enhance scalability, maintainability, and operational efficiency. This thesis investigates the data management challenges associated with such a migration and explores effective strategies to address these challenges. The effectiveness of the strategies are assessed by the tradeoff between latency, time to recover and the implementation complexity. Through a mixed-methods approach, including a systematic mapping study, semi-structured interviews, and proof-of-concept implementations, we identify key challenges such as handling statefulness, ensuring data consistency, managing data synchronization, data splitting and data denormalization. Our findings highlight the importance of prototyping and iterative testing, revealing that strategies like Database per Service, Private Tables per Service, Schema per Service, Stateful Messaging Pattern, and State Repository Pattern can effectively address the data management challenges of an MSA migration, though their suitability depends on the system’s unique constraints. We also emphasize the need for robust data synchronization mechanisms and found the Saga and CQRS patterns as potential solutions. The research highlights the importance of a flexible, iterative approach to migration, allowing for the gradual transition of the system and alignment with customer demands. By implementing intermediate designs, organizations can manage the complexities of migration more effectively, ensuring a smoother process and achieving a scalable, maintainable system architecture. Overall, this thesis provides valuable insights and practical recommendations for organizations undertaking the migration of embedded systems to microservices, contributing to the broader field of software engineering and system architecture.
Keywords: Microservices Architecture; Embedded Systems; Data Management; Cloud Migration; Stateless; Strategies; Challenges; Prototyping; Scalability