Abstract: Microservices are a software development approach where applications are composed of small independent services that communicate through well-defined APIs. A major challenge of designing these applications is determining the appropriate microservices granularity, which is currently done by architects using their judgment. This article describes Microservice Backlog (MB), a fully automatic genetic-programming technique that uses the product backlog's user stories to (1) propose a set of microservices for optimal granularity and (2) allow architects to visualize at design time their design metrics. Also, a new Granularity Metric (GM) was defined that combines existing metrics of coupling, cohesion, and associated user stories. The MB-proposed decomposition for a well-known state-of-the-art case study was compared with three existing methods (two automatics and one semi-automatic); it had consistently better GM scoring and fewer average calls among microservices, and it allowed to identify critical points. The wider availability of techniques like MB will allow architects to automate microservices identification, optimize their granularity, visually assess their design metrics, and identify at design time the system critical points.
Authors: Fredy Humberto Vera Rivera (Universidad Francisco de Paula Santander & Universidad del Valle, Colombia); Eduard Puerto-Cuadros (Universidad Francisco de Paula Santander, Colombia); Hernan Astudillo (Universidad Técnica Federico Santa María, Chile); Carlos Gaona-Cuevas (Universidad del Valle, Colombia)
Email: fredyhumbertovera@ufps.edu.co, eduardpuerto@ufps.edu.co, hernan@inf.utfsm.cl, mauricio.gaona@correounivalle.edu.co