The Challenge
Digital Turbine embedded apps on carrier phones that needed fresh, personalized news content. The content API had to be blazing fast for millions of devices, while a separate analytics system needed to sync device data to BigQuery for efficient querying that wasn't possible on AWS alone.
Our Approach
Content API
- RSS Ingestion: Fetched news from RSS feeds multiple times daily
- Content Processing: Ran NSFW filters and NLP enrichment, stored in DynamoDB
- Content Builds: Scheduled builds pulled fresh content from DynamoDB into static JSON files
- CDN Distribution: S3 bucket fronted by CloudFront for ultra-fast global delivery
- Personalization API: Tracked articles read, viewed, and shared to recommend relevant content using NLP
Cross-Cloud Sync
- DynamoDB to BigQuery: Synced device data to GCP for analytics queries that were far more efficient than anything available on AWS
Architecture
flowchart TB
subgraph Ingestion["Content Ingestion"]
RSS[RSS Feeds] --> Proc[Processing]
Proc --> NSFW[NSFW Filter]
NSFW --> NLP[NLP Enrichment]
NLP --> DDB[(DynamoDB)]
end
subgraph Delivery["Content Delivery"]
DDB --> Build[Content Build]
Build --> S3[S3 JSON]
S3 --> CDN[CloudFront]
CDN --> Devices[Carrier Devices]
end
subgraph Personalization
Devices --> Track[Read/View/Share]
Track --> Recs[Recommendations API]
Recs --> Devices
end
Results
The platform delivered high-performance content at carrier scale:
- Ultra-fast content delivery via CloudFront CDN
- NSFW filtering ensured brand-safe content for carrier partners
- NLP-powered personalization increased user engagement
- Cross-cloud sync enabled efficient BigQuery analytics
- Static JSON builds reduced API load and improved reliability
BLU News