Contributing to Adobe’s open source world with an Adobe Experience Platform SDK for Project Firefly
The Adobe Experience Platform provides an API first approach and while working on our real time Experience Platform application demo we used this API intensively. Over the six weeks it took to realize this project, Adobe’s latest technology Firefly also began to take shape. Adobe provided several NodeJS based SDKs to access Adobe Experience Cloud products such as Adobe Target or Adobe Analytics.
As we worked on creating our Experience Platform demo, we were advised by Adobe with filling in the gap between Platform and Firefly. So, we began building an SDK for Experience Platform, embedded within the world of Firefly.
What exactly is a SDK?
A SDK (software development kit) is a collection of software development tools which unifies repeated work. It makes the developer’s life easier by providing code completion and better debugging possibilities. It also makes development more efficient and allows less skilled developers to contribute to projects.
Building a SDK for Firefly
Although our Experience Platform demo project was nearing completion, we decided to take a chance and implement a SDK for Customer Profile API on Adobe Experience Platform. A few pull requests later it was already merged and we could update our own code. We removed all API usage and put all Adobe I/O actions on the Platform SDK.
We also decided to make use of some core libraries in the Firefly SDK: logging is now done via “@adobe/aio-sdk”. Besides logging the Firefly SDK provides even more developer's commodities such as error handling, key-value configuration or networking features.
Finally, we also contributed to a “Customer Profile action generator”, with the aim of boosting the velocity at which custom Platform applications can be developed in Project Firefly in the future.
Adobe’s Firefly has great coverage of Adobe Experience Cloud Solutions in its SDKs so you can build any kind of custom Adobe Experience Cloud application solely based on its framework, like our Real-Time Airline Application. Using the same technology (NodeJS) and runtime (Adobe I/O) makes life easier for development teams, plus it’s a great basis for multi product orchestration projects.
So, what can we expect from the future? Instead of only one-to-one wrappers “API to SDK” we will see more practical and convenient business driven methods in the SDKs. For now, we look to continue contributing to Adobe's open source world, improving more SDKs from an Adobe Partner perspective with practical relevance.