Overview
A Bangladeshi online newspaper with over one million monthly readers needed a scalable SaaS platform to support multi-tenant editorial workflows, subscription billing, real-time breaking news, and SEO- optimised content delivery. Traffic spikes around breaking news events could be sudden and massive.
Redis Caching Layer
Hot articles, homepage feeds, and category archives are served from a Redis caching layer with tiered TTLs. During a traffic spike, the overwhelming majority of requests are served from cache — the database sees a fraction of the raw traffic.
Cache invalidation is event-driven: publishing or updating an article triggers targeted cache busts for exactly the affected keys. No full- cache flushes, no stale content served past its TTL.
WebSocket Breaking-News Broadcasts
When editors publish a breaking news article, a WebSocket event is broadcast to all connected subscribers instantly — no polling, no refresh required. Thousands of concurrent readers receive the notification in real-time. The broadcast fan-out is handled by Redis pub-sub across multiple application instances.
Multi-Tenant Editorial Workflows
The platform supports multiple publications as tenants, each with their own editorial team, content, subscriber base, and billing plan. Role- based editorial workflows (writer → editor → publisher) are enforced per tenant. SEO routing — slugs, canonical URLs, structured data — is handled at the application layer.
Subscription Billing
Subscription plans (monthly/annual, article-level paywalls) are managed per tenant with automated renewal, payment failure handling, and reader-facing subscription management. Billing events are processed asynchronously to keep the read path fast.
Infrastructure
Deployed on AWS with Nginx as the reverse proxy, Let's Encrypt TLS, and a CI/CD pipeline for zero-downtime deploys. Application and cache layers are decoupled so either can be scaled independently based on traffic patterns.
Tech Stack
- Backend: Laravel, PHP 8, MySQL 8
- Cache / Pub-Sub: Redis
- Realtime: WebSockets (broadcasting)
- Infra: AWS VPS, Nginx, CI/CD