Harnessing the Power of Adobe Experience Platform Sink Connector for Real-Time Data Ingestion from Kafka
Sainath Revankar
Director Of Analytics | Leader in MarTech Implementation - Adobe Experience Cloud & Google Marketing Platform
Not too long ago, a customer came to me with a challenge involving the Adobe Experience Platform (AEP) Sink Connector. While they had a strong understanding of their business and marketing needs, they weren't deeply familiar with the Kafka ecosystem. They understood that Kafka could help power their real-time data flows, but they needed expert guidance on how to architect a solution that would seamlessly integrate this data into AEP. More specifically, they were focused on how this data could support their marketing use cases, particularly around real-time retargeting.
The client wasn’t looking to dive deep into the technical intricacies—they just needed to know how to leverage these tools to improve their marketing campaigns. They wanted to understand how they could use real-time data to fine-tune their customer journeys without worrying too much about the technical details, as long as the technology could effectively support their retargeting efforts.
This is where I came in. My goal was to simplify the complexities of the Kafka ecosystem and AEP Sink Connector, so my client could focus on their marketing objectives without getting bogged down in technical jargon. I broke down the solution into actionable steps, showing them how to use the AEP Sink Connector to efficiently ingest real-time streaming data from Kafka into AEP—enabling them to target customers more accurately and adjust campaigns in real-time.
In this blog, I’ll share how I helped my client navigate through the complexities of the AEP Sink Connector and Kafka ecosystem. Together, we explored how to leverage the AEP Sink Connector to ingest streaming data from Kafka into AEP, enabling real-time use cases. If you’re facing a similar challenge, this guide will help you get started with your own streaming data architecture. Let’s dive in!
Prerequisite Concepts
Before diving into the technical details, it is essential to understand some foundational terms and concepts that will be referenced throughout this blog.
Having a clear understanding of these terms will make it easier to follow the implementation steps and appreciate the benefits of integrating Kafka with AEP.
Understanding Kafka Connect and Kafka Instance in the Context of AEP Streaming Connector
Let’s break this down into simpler terms, focusing on the AEP Streaming Connector and its integration with Kafka.
1. What is Kafka Connect?
Kafka Connect is a framework that simplifies the integration of external systems (like databases, other message brokers, or applications) with Apache Kafka. It provides ready-made connectors for common data systems and makes it easier to move data between Kafka and other systems without writing custom code.
Kafka Connect can run in two modes:
The AEP Streaming Connector can be installed as a Kafka Connect Plugin, which is essentially a JAR file that enables data to flow from Kafka into Adobe Experience Platform (AEP).
2. AEP Streaming Connector with Kafka Connect
If you have your own Kafka Connect Cluster:
Steps for setting this up:
The Kafka Connect Cluster handles the communication between Kafka and AEP, managing things like data ingestion, scaling, and fault tolerance.
3. AEP Streaming Connector with Kafka but Without Kafka Connect Instance
If you have your own Kafka deployment but do not have a Kafka Connect instance, the Kafka Connect Plugin cannot be used in the traditional way. In this case, you can still use the AEP Streaming Connector by running it via Docker, which directly communicates with your Kafka brokers to send data to AEP.
In simpler terms:
Key Differences:
Which Setup to Use?
This flexibility allows businesses to choose the right approach based on their existing infrastructure and scalability requirements.
Data Exchange Setup for Adobe Experience Platform (AEP) Sink Connector
The sequence diagram provides a step-by-step view of the data exchange process between Kafka Connect, IMS, and Adobe Experience Platform (AEP). This layout is designed to make the workflow clear and accessible. Key steps include:
This visually intuitive format makes it easier to trace the sequence of interactions and understand the technical dependencies involved in real-time data ingestion workflows.
To begin the setup on your local machine, start by downloading the streaming connector from this GitHub link.
领英推荐
Please note that the connector currently uses Service Account (JWT) Authentication, which will be deprecated starting June 3, 2024. After this date, new Service Account (JWT) credentials cannot be created or added to projects. If you plan to continue using the application, the existing JWT authentication will no longer generate the token.
To ensure a smooth transition, I’ve updated the code to support the new OAuth Server-to-Server authentication, the changes to the respective files can be found in my GitHub repository here. Migrating to this method is straightforward and allows for a zero-downtime migration, ensuring your application remains functional during the transition.
To learn how to migrate from Service Account to OAuth Server-to-Server credentials, follow the instructions provided in this link.
Now, build the Docker image using the commands below. Once the command completes, the output generated will be shown in the screenshot.
./gradlew clean build
docker build -t streaming-connect .
docker-compose up -d
Before executing the command below, make sure to obtain an API Key and IMS Token to access Adobe Cloud Platform APIs.
docker exec -i experience-platform-streaming-connect-kafka-connect-1 ./setup.sh
Simplifying the Output:
Let's break down the output mentioned and explain it in simpler terms:
1. Streaming Connection Source:
"My Streaming Source-20241226153128": This is the name of the source where the data originates. In your case, this source could be a Kafka topic or another streaming data source.
2. Creating the Streaming Connection:
Making call to create streaming connection to https://platform.adobe.io/...: This message shows that a request is being made to Adobe's platform to create a connection between your streaming source (e.g., Kafka) and Adobe Experience Platform.
3. Streaming Connection ID:
Streaming Connection: e9b0175a-314d-467a-b595-656c3347b40b: This is a unique identifier generated for the streaming connection. It's used to track and manage the connection in AEP.
4. Streaming Connection URL:
https://dcs.adobedc.net/collection/...: This URL is where the data will be sent in real-time once the connection is established. It represents the destination where Adobe Experience Platform will receive and process the data.
5. Topic Created:
Created topic connect-test-20241226153128: A topic (a kind of "data stream" or channel) has been created with the name connect-test-20241226153128. This topic will receive the streaming data from Kafka and send it to AEP.
6. AEP Sink Connector:
AEP Sink Connector aep-sink-connector-20241226153128: This refers to the AEP Sink Connector that facilitates the connection between the streaming source (Kafka) and AEP. It is responsible for receiving data from the Kafka stream and pushing it into AEP for real-time processing.
Here is a screenshot of the data generated by Kafka topics, which is then consumed within AEP.
Verify Data Landing into AEP
To verify that the data is successfully landing in Adobe Experience Platform (AEP), log in to AEP and use the monitoring dashboard to track the streaming data as it gets ingested. Then, review the data within the dataset to ensure it has been ingested correctly.
Conclusion
The AEP Sink Connector is a powerful tool for integrating Kafka data streams into Adobe Experience Platform. By leveraging this connector, businesses can unlock the full potential of their streaming data for real-time insights and improved customer experiences. Whether you’re looking to optimize marketing campaigns, enhance customer engagement, or drive revenue growth, the AEP Sink Connector provides the foundation for success.
Start building your real-time data pipelines with the AEP Sink Connector today and transform your data into actionable insights.