"If the components do not compose cleanly (when migrating to microservices), then all you are doing is shifting the complexity from inside a component to the connections between components. This does not just move complexity around; it moves it to a place that's less explicit and harder to control."
– Martin Fowler and James Lewis
This chapter introduces the concept of Service-Oriented Architecture (SOA) and compares it with the traditional monolithic design pattern. This will help us discuss the various challenges of microservices such as logging, tracing, and service introspection, and provides advice for reducing the pain points from moving to an SOA.
Toward the end of this chapter, we will be breaking down the monolithic Links 'R' Us implementation from the previous chapter into several microservices and...