cloud · consulting

Content Tagging Service

July 17th, 2024

Node.js TypeScript Serverless Postgres GitHub Actions Jest YAML Apollo GraphQL Rails OpenAI

Content Tagging Service

Problem Statement

The client was looking for a way to automate the tagging and enrichment of video data using modern AI tools. Internal business logic dictated that certain types of metadata - hashtags, categories and characteristics - were to be added to video objects to generate richer and more insightful data profiles. It was intended that this would help power a custom recommendation engine in future.

Solution

We designed an AWS Step Functions workflow deployed using GitHub Actions and the Serverless Framework. Amazon SQS queues were used to decouple the tagging requests made via managed third party AI services. One of the key business requirements was atomicity; unless there was a complete set of tags, no tagging metadata should be set at all. To that end, we made sure a given execution of the workflow would fail if any individual set of tag data failed to be generated.

Given the unpredictable and inherently fallible nature of third party services, we leveraged retries and exponential backoff as a safeguard that was applied to all third party lookups. We ensured that all operations that persisted tag data to the database were idempotent.

Architecture Diagrams

Full Architecture navisavi-hashtagging-service copy.drawio

State Machine Workflow navisavi-hashtagging-step-functions-arch-diagram copy

Successful Execution navisavi-hashtagging-state-machine-with-tidal copy

Share this itemimgimgimgimg

Related Projects

Logo
James Does Digital
Software Development
Cloud Computing
Current Address
Edinburgh
Scotland
UK
This site was created using the Jamstack.
All articles © James Does Digital 2026. All rights reserved.