criteria used in dividing the system into modules. On the criteria to be used in decomposing systems into modules - David L. Parnas Published in Communications of the ACM Volume 15 Issue 12, Dec. 1972 3
• Scope matters • Bounded Contexts • Design for Maintenance • 3 to 10 developers per Microservice during project development • But how many developers will maintain the system? 5
style that supports service-orientation • Service-orientation is a way of thinking in terms of services and service-based development and the outcomes of services • Service • Is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit, provide weather data) • Is self-contained • May be composed of other services • Is a black box to consumers of the service 6 Source: http://www.opengroup.org/soa/source-book/soa/p1.htm
Define bounded contexts • Introduce pattern language • Separate infrastructure code from business code • Step 2: Move existing code to newly defined subsystems • Step 3 (optional): Distribute the subsystems 15