Microservices as an Evolutionary Architecture of Component-Based Development: A Think-aloud Study
This study addresses software engineering challenges in architectural design for developers and researchers, but it is incremental as it builds on existing literature without introducing new methods or data.
The paper investigates microservices as an evolutionary architecture for component-based development, analyzing their core properties like scalability and resilience, and concludes that using microservices as components is promising for building applications traditionally based on component-based approaches.
Microservices become a fast growing and popular architectural style based on service-oriented development. One of the major advantages using component-based approaches is to support reuse. In this paper, we present a study of microservices and how these systems are related to the traditional abstract models of component-based systems. This research focuses on the core properties of microservices including their scalability, availability and resilience, consistency, coupling and cohesion, and data storage capability, while highlighting their limitations and challenges in relation to components. To support our study, we investigated the existing literature and provided potential directions and interesting points in this growing field of research. As a result, using microservices as components is promising and would be a good mechanism for building applications that were used to be built with component-based approaches.