VeUP
← All case studies
Generative AI · Lambda moderation backbone
A global consumer social platformIdentity protected

Global social platform reaches 99.6% moderation accuracy on Amazon Bedrock

Well-Architected ReviewAI safety guardrailsModel evaluationModel routingModel fallbackProvider abstractionPrompt engineeringEvent-driven architectureUnit-cost optimizationInfrastructure-as-code foundationAgentic workflowsCost-optimization deep diveHigh-risk-issue remediation roadmapTarget-state architecture design & costed POCDay-2 runbooks & team enablementInfrastructure observabilityPrivate connectivity & network isolationSecrets management & credential eliminationModel cost governanceWorkload placement & runtime selectionStorage tiering & lifecycle policies
54 → 99.58%
NSFW accuracy — prompt engineering alone, no fine-tuning
~$1
per 1,000 images, end to end
4 of 900
NSFW images missed — 99.56% recall, the number that matters when false negatives are unacceptable
AWS LambdaAWS Step FunctionsAmazon EventBridgeAmazon SQS

For a global consumer social platform, VeUP shipped a user-generated-content moderation backbone whose entire data plane is serverless: an upload to Amazon S3 in the user-facing account fans out through Amazon SNS and Amazon SQS into a dedicated moderation account, where AWS Step Functions orchestrates a family of AWS Lambda functions that extract frames, call the inference engine, aggregate verdicts, and write the result back — with no EC2 instances and no long-running containers anywhere in the flow.

The challenge

Moderation traffic at a consumer social platform is the worst kind of workload to size servers for: bursty, diurnal, and driven by user behavior rather than forecasts. Images need a synchronous low-latency verdict; video needs an asynchronous fan-out that judges many frames per clip. One awkward detail cuts against serverless orthodoxy: frame extraction needs ffmpeg, which no managed Lambda runtime ships. The platform needed a backbone that scales to zero between bursts, absorbs spikes without capacity planning, isolates moderation compute from the user-facing estate, and still accommodates a native binary dependency in the middle of the pipeline.

The solution

VeUP made AWS Lambda the compute spine and engineered around its edges. Seven Node.js functions carry the pipeline — a synchronous image path for low-latency verdicts, and an asynchronous per-frame video path orchestrated by AWS Step Functions with a Map state throttled at MaxConcurrency=5 to pace inference calls. The ffmpeg problem was solved in-pattern: the frame extractor is a container-image Lambda packaged via Amazon ECR, keeping the native dependency inside the serverless operating model rather than forcing a server into the architecture. Amazon EventBridge Pipes, SNS, and SQS connect the S3 upload events in the platform’s user-facing account to the dedicated moderation account, with least-privilege cross-account IAM. The analyze-image function calls the Amazon Bedrock Converse API, Amazon Rekognition stands by as the fallback engine, Amazon EFS and S3 carry working media, and AWS Secrets Manager and KMS hold the sensitive material. The entire estate is provisioned as Terraform infrastructure-as-code and instrumented with Amazon CloudWatch.

Production outcomes

KPIResult
Serverless data plane100% of moderation compute on AWS Lambda — synchronous image path plus per-frame async video path — with zero EC2 instances or long-running containers to patch, scale, or pay for at idle.
Moderation quality99.56% NSFW recall on a 1,501-image labeled benchmark, delivered through the Lambda-orchestrated pipeline in production.
Cost efficiency~57% lower inference cost per 1,000 images versus the prior engine, on a compute tier that bills only for work actually performed.
Lessons & continuationContainer-image Lambdas close the native-dependency gap without abandoning serverless; cross-account event fan-out (SNS → SQS → Pipes) isolates moderation from the product estate; an explicit Map-state concurrency ceiling is the difference between scaling and throttling at the inference tier.
AWS services in production
AWS Lambda (Node.js)Amazon ECR (containerized frame extractor)AWS Step Functions (Map, MaxConcurrency=5)Amazon EventBridge PipesAmazon SNSAmazon SQSAmazon S3Amazon EFSAmazon Bedrock (Converse API)Amazon Rekognition (fallback)AWS Secrets ManagerAWS KMSAmazon CloudWatchAWS IAM