The proliferation of SaaS applications has created a difficult problem: m services that must connect and flow data to n different services. Each has its own constantly changing and independently maintained API. Consumers need to write and maintain m × n connectors, which is expensive, error prone, and requires never-ending maintenance. What's the solution?

There's been many attempts at solving this problem: e.g., Zapier for consumers, Mulesoft for enterprises, and Fivetran for data. The idea is to outsource the work to a third-party, who then diligently keeps the connectors updated. There are variations on this theme – outsource the work to open source developers (plugin system), or try to develop a universal standard.

However, this problem will never be solved for the majority of use cases. Sure, engineering best practices can improve – semantic versioning and backwards compatibility. But for many use cases, API publishers have no incentive to make this easy on the integrators. If they did want to support mission critical API consumers, they would rather have a direct enterprise relationship with the end user. But in many cases, the scope of the API is limited to filling in the gaps in a product suite. They don't want you checking Mulesoft for your observability dashboards when they are most likely selling their own managed product dashboards.