Chapter 12. Using Microservices
A service provides some capabilities that are needed by the rest of the application. Example include billing services (which offer the component that bills customers), account creation services (which manage the component that creates accounts), and notification services (which include functionality for notifying users of events and conditions).
A service is a standalone component. The word “standalone” is critical. Services meet the following criteria:
- Maintains its own code base
A service has its own code base that is distinct from the rest of your code base.
- Manages its own data
A service that requires maintaining state has its own data that is stored in its own datastore. The only access to this separated data is via the service’s defined API. No other service may directly touch another service’s data or state information.
- Provides capabilities to others
A service has a well-defined set of capabilities and it provides these capabilities to other services in your application. In other words, it provides an API.
- Consumes capabilities from others
A service uses a well-defined set of capabilities provided by others and uses them in a standard, supported manner. In other words, it uses other service’s APIs.
- Single owner
A service is owned and maintained by a single development team within your organization. A single team may own and maintain more than one service, but a single service can have only a single team that owns and maintains ...