Service-Oriented Architecture
In this chapter, we consider what a service-oriented architecture for Shopend would look like, and then look at microservices, which divide a system into small, independent services.
After reading this chapter, you should be able to:
- Distinguish a system designed as services from an application with one part split off
- Define business capability and service-oriented architecture
- List Shopend’s capabilities and group them into services
- Define loose coupling and tight coupling
- Explain what sharing one database gives Shopend’s services and what it costs
- Choose REST, GraphQL, or RPC for each kind of call in Shopend
- Explain what a service’s contract is
- Define microservices by their size and independence, and explain why each one keeps its own data
- Explain what microservices gain and what they cost, and define a distributed monolith
- Explain when to move to microservices, and describe the strangler fig pattern
- Describe how Uber and Netflix moved to microservices, and why Segment moved away from them