Chapter 5. Microservice Design
When embarking on developing an application using a Microservices Architecture (Chapter 4), it is important to understand how to best design the Microservices that your application needs. Building a Distributed Architecture, such as a Microservices Architecture, has many challenges, and can be difficult to get right, specifically when dealing with possible failure points and distributed transactions.
When developing systems, it has been proven that designing, modeling, and building systems around the domain is a recipe for success. This is true regardless of the architectural style you are using. Understanding the requirements for a system and modeling the domain usually starts with a requirements-gathering phase to gain a better understanding of the domain and the problem we are solving. Requirements-gathering can elicit software requirements from various activities, such as discussing user scenarios, creating user stories, looking at sequences of events for the system, discussing various rules of the system, and examining how to validate the requirements. After the requirements have been gathered, discussed, and validated with the stakeholders, there is usually some form of a modeling phase. In the past, this modeling phase usually included taking your requirements and mapping your domain through some form of a business process modeling technique (i.e., Business Process Modeling Notation (BPMN), Unified Modeling Language (UML) diagrams, flow charts, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access