Vertical vs Horizontal APIs
Many APIs have emerged since the inception of computer software. Its root can be traced back to the layered software architecture in which high layer calls to low layer. The low layer is not necessarily called APIs, but the other way is mostly true.
Initial APIs were inside a single or multiple vertical call stacks that share same memory space. As a result, you have good performance and ease of use. After that, inter-process communication (IPC) emerged and allowed API services to run in a different process for better protection against process crashes.
Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.
When distributed systems emerged, APIs services started to run on different machines for better protection against OS crashes and better scalability. For example, DBMS runs on a separate machine and provide database services to application running on other machines.
Through all these APIs, an execution dependency is established. In other words, if an API services fail, the application fails as well. These APIs are execution APIs, or vertical APIs.
While the cloud computing getting popular, a new type of APIs are getting popular too. Its intention is not for execution but to manage. The APIs offer controls over lifecycle and resource allocation of remote stacks in the cloud, and retrieves running states and stats. The remote stacks are independent in the sense that it continues to run even without the remote management client. These APIs are management APIs, or horizontal APIs.
An easy way to think about these two types of APIs is to look around your workspace. The execution APIs are like individual contributors and the management APIs are like managers. Individual contributors continue to ship products even if their managers are gone for a while but not forever.
Both types of APIs are important for successful cloud computing projects. It’s like a successful business needs both individual contributors and managers. To stay on top of work, cloud architects/developers need to know both types of APIs.