Internal APIs
Firstly, let’s remember the definition of an API. An Application Programming Interface (API) allows developers to define a contract that, when adhered to, enables multiple systems to interact in a pre-defined way without either system being deeply tied to the other. When using APIs, the API provider should be able to completely rewrite their internal implementation of the API without the other systems knowing, as long as the contract is maintained and met.
Within our Salesforce application landscape, we will often have multiple applications interacting and working with each other, and it is not uncommon, especially in implementations that grow organically and are delivered by internal teams only, for the applications and the solutions to become intertwined and overlapping. As an example, I once worked with a customer who had the following high-level system process:
Figure 13.1 – High-level business process
Whenever a sale...