Computing Reviews

A pattern language for scalable microservices-based systems
Márquez G., Villegas M., Astudillo H.  ECSA 2018 (Proceedings of the 12th European Conference on Software Architecture, Madrid, Spain, Sep 24-28, 2018)1-7,2018.Type:Proceedings
Date Reviewed: 12/14/18

Identifying and codifying scalability issues across microservices-based distributed systems is challenging. This paper provides “a preliminary list of microservices architecture patterns” and “a principled patterns taxonomy ... for scalability requirements.” A scale cube is used to define these patterns across three dimensions: X-axis scaling focuses on load balancing, especially across distributed network elements; Y-axis focuses on decomposition, so the parts are easier to analyze, develop, and maintain; and the Z-axis of the cube is for grouping related and recurrent items.

The proposed steps explain how this pattern language identifies and selects aspects across the three dimensions. For example, architecture patterns for service discovery belong to the Z-axis grouping pattern since deployment clustering mitigates scaling concerns. The paper further decomposes the scalability dimensions, listing a set of pattern categories. The authors’ taxonomy for scalability patterns could help architects as they discuss, develop, and manage their designs. This pattern language lookup service would be based on (a) context, (b) problem, and (c) solution. When looking up an example for, say, connecting small microservices, the results show: the service discovery pattern is applicable for this (a) context; the (b) problem description shows how this pattern supports dynamically locating services as they start up and move around; and the (c) solution is appropriate since the pattern uses a service discovery process for finding service addresses.

A worked example then shows how a Chilean company’s real-time vehicle position capturing system could use these patterns. While the paper stays with higher-level patterns, the same process steps could help with the decomposition of a system into graphic representations of systems and eventually code-level patterns.

Reviewer:  Scott Moody Review #: CR146344 (1903-0080)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy