The Adobe I/O Runtime is the central component and quasi the runtime environment that Adobe provides so that the developed integrations can be operated. Using so-called "serverless functions" can be used to extend or interconnect the Adobe Experience Platform and its services. services can be extended or interconnected.
The Adobe I/O Runtime is based on Apache OpenWhisk and Node.js. OpenWhisk is an open source, serverless platform that can execute functions in response to events. in response to specific events. OpenWhisk, or the Adobe I/O runtime manages the infrastructure, servers, and scaling using Docker containers. As a result, you don't have to worry about scaling issues during development and can focus on solving the problem. focus on solving the problem.
As the platform is based on Node.js, development mostly takes place in JavaScript. The platform supports a programming model in which application code is encapsulated in functions. These functions are called OpenWhisk Actions. These functions are mostly triggered by triggers (e.g. events) or HTTP requests. For example, you can develop a function that uses JavaScript and a corresponding client library to call Adobe's Photoshop API. The whole thing can then be used to generate renditions from AEM via HTTP requests, for example. The advantage of this approach is obvious: The individual functions are encapsulated and are automatically scaled via the Adobe I/O Runtime (Function-as-a-Service). The load is thus distributed from the AEM system to the Adobe I/O Runtime.
In addition to these actions, web applications can also be deployed and operated via the Adobe I/O Runtime. Adobe uses specially developed React components for this purpose, which are based on Adobe's design system. The web interfaces developed in this way can then be used, for example, to test the actions mentioned above. In general, many different use cases can be mapped here. However, the extent to which it makes sense to run a web application via Adobe I/O Runtime must be evaluated on a case-by-case basis. This makes the most sense for applications that function as a web front end for the "Serverless Functions".