Microservices architecture is widely adopted in modern systems when scalability and code maintainability is a concern. It is more flexible than monolithic architecture and ensures a smooth transition into cloud-native environments. This paper presents a novel approach to model both business processes and domain knowledge in a unified specification that could produce boilerplate code compliant with microservices architecture. It also introduces MSstack, our full-stack framework for creating business process pipelines using microservices architecture, with built-in logging, monitoring, load balancing, and scaling capabilities. Together, they enable developers to create a domain model, convert it to domain-specific boilerplate code, and implement business logic on it, while abstracting the complexities of microservices and accelerating development. To evaluate this approach, a sample business process was implemented using MSstack, Spring Boot 2.0 and MSF4J 2.4.0 respectively and tested up to a concurrency of 300 users. Results show that their peak request throughputs are 81044 $s^{-1}$, 60283 $s^{-1}$ and 23781 $s^{-1}$ respectively. The maximum latency observed in MSstack is 1ms lower than MSF4J, and 6.0 ms lower than Spring Boot. Heap memory usage of MSstack is lower than the rest. Its CPU usage is on par with MSF4J, but lower than of Spring Boot.
[1]
Ivan Luković,et al.
MicroBuilder: A Model-Driven Tool for the Specification of REST Microservice Architectures
,
2017
.
[2]
Luca Florio.
Decentralized self-adaptation in large-scale distributed systems
,
2015,
ESEC/SIGSOFT FSE.
[3]
Erik Edling,et al.
An analysis of microservice frameworks
,
2017
.
[4]
Patricia Lago,et al.
Research on Architecting Microservices: Trends, Focus, and Potential for Industrial Adoption
,
2017,
2017 IEEE International Conference on Software Architecture (ICSA).
[5]
Giovanni Toffetti Carughi,et al.
An architecture for self-managing microservices
,
2015,
AIMC '15.
[6]
Tim Schmelmer,et al.
Microservices: The What and the Why
,
2016
.