17 Running with Microservices

The goal of this chapter is to introduce the microservices practice and its elements, and to see how TravelEssence adopted and applied microservices and what benefits they achieved, together with the rest of the benefits that can be gained by using this practice in an essentialized form. Specifically, the reader will be shown

  • the conceptual framework of microservices and how they relate to software components;
  • the elements of the microservices practice and how they interrelate, in addition to activities to progress the alphas and work products;
  • how to use the microservices practice in a real endeavor, and specify potential obstacles and challenges;
  • how to identify which kernel solution activity spaces are covered by this practice; and
  • the visual representation of microservices using the Unified Modeling Language (UML).

After studying this chapter, you should be able to

  • explain the purpose of microservice architecture and the problem it solves in contrast to a monolithic system architecture;
  • explain the challenges connected to the microservice architecture;
  • explain the concept of “data hiding”;
  • explain the effect of microservice communication on performance degradation and how to prevent it;
  • name and explain the alphas, work products, and activities of the Microservices Lite practice;
  • name the activities used when applying the Microservices Lite practice with examples; and
  • explain how to ensure that the system is ready for quick replacement of one microservice with another without affecting other parts of the software system.