• Focus on one thing and do it right
• Organizational alignment
• Release functionality faster
• Independent scaling
• Technology diversity; Adopt technologies faster
• Enable security concern segregation
• Enable resiliency by designing for failure
• Sam Newman (2014) Building Microservices. O’Reilly Media.
• James Lewis, Martin Fowler (2014) Microservices – a definition of this new
architectural term. https://martinfowler.com/articles/microservices.html
• Martin fowler (2015) Microservices trade-offs.
• Martin Fowler (2014) Bounded context.
• Microsoft. Microservices architecture. https://docs.microsoft.com/en-
• Microsoft. Microservices architecture style.
• Matt Mclarty, Irakli Nadareishvili (2017) Streamlined Microservice Design
in Practice. In The DZone guide to Micoservices, vol 1.
• Susan Fowler (2016) Production-ready Microservices. O’Reilly Media.
• IBM. Microservices for fast time to market and improved app quality.
• IBM. Refactoring application code to microservices.
• Nick Vennaro (2017) How to introduce microservices in a legacy
See also https://www.slideshare.net/masashin/designing-microservices/13
Finding service boundary
• Start with bounded context
• Further breakdown per non-functional requirements
• Vertical decomposition rather than horizontal (layers)
• Also consider
• Rate of change
• Technology used
• Communication overhead
• Splitting data is challenge due to consistency issues
• Refactoring across boundary is an extremely expensive operation