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

Sections

  1. Splitting Off One Part
  2. Service-Oriented Architecture
  3. Shopend’s Capabilities
  4. Which Capabilities Share a Service
  5. How the Services Communicate
  6. Microservices
  7. Moving to Microservices
  8. Uber, Netflix, and Segment