Service communication
When writing a new service, or when consuming other services, there are some questions that require an answer:
- Is this service meant to be consumed by external parties?
- How will this service be consumed?
- How do requests get authenticated?
- How do requests get authorized?
- What is the Service Level Agreement (SLA) of this service?
- Even if internal, SLA might apply across services and teams
There are different types of services in a Service Oriented Architecture: internal and external.
Internal services
Internal services implement a certain business capability, or a part of it. They are meant to be consumed by other services within the system.
External services
External services are meant to be consumed by end users. An example of these services, are for example public API's used by third parties to integrate some functionality from our product into their platform.
Service intra communication
Internal services can communicate with one another. External services can communicate with internal services, but internal services should not communicate with external services of the same system.
Any of them can communicate with external systems if desired.