Die Adobe I/O Runtime ist dabei der zentrale Bestandteil und quasi die Laufzeitumgebung, die Adobe bereitstellt, damit die entwickelten Integrationen betrieben werden können. Über sogenannte „serverless functions“ kann man so die Adobe Experience Platform und deren Services erweitern oder miteinander verbinden.
Die Adobe I/O Laufzeitumgebung basiert auf Apache OpenWhisk und Node.js. OpenWhisk ist eine serverlose Open-Source Plattform, die Funktionen als Reaktion auf bestimmte Events ausführen kann. OpenWhisk bzw. die Adobe I/O Runtime verwaltet die Infrastruktur, Server und Skalierung mit Hilfe von Docker Containern. Dadurch muss man sich bei der Entwicklung nicht um Aspekte der Skalierung kümmern, sondern kann sich auf die Lösung des Problems konzentrieren.
Da die Plattform auf Node.js basiert, findet die Entwicklung meist in JavaScript statt. Die Plattform unterstützt dabei ein Programmiermodell, in dem Anwendungscode in Funktionen gekapselt wird. Diese Funktionen nennt man OpenWhisk Actions. Diese Funktionen werden meist über Trigger (z. B. Events) oder HTTP-Anfragen ausgelöst. So kann man z. B. eine Funktion entwickeln, die über JavaScript und einer entsprechenden Client-Bibliothek die Photoshop API von Adobe anspricht. Das Ganze kann dann genutzt werden, um aus AEM heraus über HTTP-Anfragen beispielsweise Renditions zu erzeugen. Der Vorteil dieser Herangehensweise liegt auf der Hand: Die einzelnen Funktionen sind gekapselt und werden über die Adobe I/O Runtime automatisch skaliert (Function-as-a-Service). Die Last wird so vom AEM System auf die Adobe I/O Runtime verteilt.
Neben diesen Actions können auch Webanwendungen über die Adobe I/O Runtime deployed und betrieben werden. Adobe nutzt dafür eigens entwickelte React Komponenten, die auf dem Design System von Adobe basieren. Die so entwickelten Weboberflächen kann man dann z. B. nutzen, um die oben genannten Actions zu testen. Generell kann man hier viele verschiedene Use Cases mit abbilden. Inwiefern es Sinn macht, eine Webanwendung über die Adobe I/O Runtime zu betreiben, muss man aber im Einzelfall evaluieren. Bei Anwendungen, die als Web-Frontend für die „Serverless Functions“ fungieren, macht dies am meisten Sinn.