Microservice Architecture (MSA) is one of the recent trends in the area of Software Architecture. MSA promotes to decompose software systems into distributed services, each focusing on a well-defined, distinct task with the greatest possible independence in both technical and organizational hindsight.
While Internet giants such as Amazon and Netflix frequently share success stories on their adoption of MSA, smaller companies and enterprises often struggle with the engineering of microservice architectures given the resulting increase of design, implementation, and deployment complexity.
In this talk, we present the Language Ecosystem for Modeling Microservice Architecture (LEMMA)---a set of modeling languages and model transformations that aims to facilitate the engineering of microservice architectures through the abstraction power of Model-driven Engineering (MDE). To this end, LEMMA structures the various concerns in MSA design, implementation, and deployment into a set of architecture viewpoints of which each receives its own modeling languages tailored to the needs of domain experts, microservice developers and operators. Constructed architecture models can be integrated with each other using an import mechanism such that, e.g., microservice developers can specify in a concise and problem-oriented manner for which portion of the modeled application domain their respective microservices are responsible. In addition, LEMMA comes with a model processing framework to ease the implementation, e.g., of code generators and static analyzers, by people with a background in MSA but limited experience in MDE.
LEMMA is built atop Eclipse Modeling technologies such as EMF, Xcore, Xtext, and ATL. In our talk, we
- motivate LEMMA's design from recurring challenges in MSA engineering;
- describe LEMMA's Eclipse-powered implementation, and share our experiences in the development of modeling languages and model processors in the era of distributed software engineering---including the encountered challenges and how we approached them; and
- show LEMMA's practical application in the Eclipse IDE by evolving a microservice from its model-based design into an executable Java program including a generated API documentation.
The key takeaways of our talk are insights on
- opportunities and challenges in model-based MSA engineering;
- the application of Eclipse Modeling technologies for the realization of architecture modeling languages; and
- LEMMA as a practical approach that leverages the strengths of MDE to mitigate complexity in MSA engineering based on the mature Eclipse Modeling ecosystem.
Our talk welcomes software engineers and architects of arbitrary experience. In particular, we do not assume a deep understanding of MSA and MDE, but accompany our explanations with an easy to understand running example and a practical demonstration.