A backing service is any service that the application uses over the network that is separate from the application itself. Examples of a backing service include a data store, a distributed caching system, an SMTP server, an FTP server, and a messaging/queuing system.
The binding for each service should be stored in a configuration that is external to the application. The application should not care where the backing services are running and should not make any distinction between local and third-party services.
All backing services should be treated as attached resources, and the application should be able to attach and detach backing services without any code changes. For example, if a database goes down, it should be possible to detach it and attach a different database from a backup without making any code changes.