External Service Consumption
Examples
Description
A component through which the system invokes a service provided by an external system in order to obtain information or delegate an operation that it does not handle by itself. The system acts as a client: it builds the request according to the third party's contract, sends it, and processes the response received to incorporate it into its own flow. It is the "client" side of an integration between systems, and it makes it possible to incorporate third-party capabilities (maps, payments, validations) without developing them internally.
Mandatory capabilities
- Builds requests to an external service in compliance with the contract (specification) defined by the third party
- Sends the request and receives the response from the external system
- Interprets and processes the response received to incorporate it into the system's flow
- Manages the credentials with which the system identifies itself to the external service
Additional capabilities
- Failure handling and retries: retries the invocation or applies a fallback when the external service does not respond or returns an error, preventing the external failure from disrupting the system
- Caching of external responses: temporarily stores the third party's responses to reduce repeated calls and dependence on its availability
- Data transformation: adapts the format of the external response to the system's internal data model
- Integration monitoring: records the latency, errors, and availability of the external service being consumed
Boundaries
- Does not expose the system's own functionality to third parties — that belongs to Exposed Service: here the system is the one using someone else's service, not the one offering it
- Does not control or implement the external service: it depends on the contract and availability defined by the third party
- Is not a Scraper: service consumption uses a formal, authorized contract provided by the third party; the Scraper extracts data from an interface not designed to be consumed programmatically
- Is not an ETL: although both bring in external data, the ETL runs planned bulk loads; service consumption invokes specific operations as the system needs them
Information flow
Structured response returned by the external service (the requested data or a confirmation of the operation)
Structured request that the system sends to the external service (operation, parameters, credentials)
Variants
- Query consumption: the system invokes the third party to obtain information (e.g., looking up an exchange rate, a location, a credit score)
- Operation consumption: the system invokes the third party to carry out an action (e.g., initiating a payment, sending an email through a provider)
- REST / SOAP / GraphQL: depending on the protocol defined by the external service being consumed
Typical dependencies
- An external service provided by a third party, with its contract and documentation
- Access credentials for the external service (API key, token, certificate) and their secure storage
- API Authentication to identify the system to the external service being consumed
- Network connectivity to the external system
Mapping to the Digital Board
| Section | Relationship | Notes |
|---|---|---|
| Manual Update | No | — |
| Automatic Update | Always | The response that arrives from the external service and is incorporated into the system. |
| Data Concepts | Always | The system entities that are enriched or validated with the information from the external service. |
| On-Demand Outputs | No | — |
| Automatic Outputs | Always | The structured request that the system sends to the external service. |
| Autonomous Processes | Always | The logic that builds the request, interprets the response, and handles failures, retries, and caching, when those capabilities are present. |