Project Overview:

This was a project I worked on with a colleague, in which we automated a process that would pick up visuals (images, videos), that a client ran for their ads, download them, and attach labels to them to be able to sort data by. There was an existing process in place that caused a lot of issues, and the major issue lied in not being able to call individual steps in the process. We used AWS (Lambdas, EventBridge, S3, RDS), mongoDB, Meta API, and Google’s Gemini API to build an event bus system to smoothly process visuals.

Downloading + Storing Visuals:

To determine what visuals needed to be downloaded, we would use Meta’s API to find ads that we have not stored yet, and send them through an AWS EventBridge process. Note: when building this project, we originally focused on only Meta data. However, once we had built and tested the events, we incorporated data from other platform APIs such as TikTok and Twitter. This process allowed us to easily add in new platforms and build upon only the necessary event lambdas in the event bus.

The first step: get the image/video data from Meta via their API, and store it in a database (using mongoDB), in addition to storing the actual visual in an AWS S3 bucket.

Event Bus Steps:

Putting it Together

Using an EventBridge via AWS allowed us to easily rerun specific steps in case they failed, and store data along the way. Instead of having to wait until the end of the process to save everything into our database and AWS, we could store data and make updates in each step.

This was a really cool project to work on, since I actually really enjoy rewriting and refactoring code to improve it. A lot of it ended up having to be written from scratch in order to fit it into this new system, but it was a great challenge, and I learned a lot. This was my introduction into using the EventBridge and RDS in AWS, which were really interesting to create with.