Back to Projects
Backend / SystemsBuilt at NatrajX ↗

E-News 2.0 — High-Scale Media Ecosystem

Distributed microservices architecture integrating real-time Live TV (HLS), algorithmic personalisation, and AI-generated e-newspapers — handling 100K+ concurrent users without degradation.

Client

Janprakashan

Year

2025

Category

Backend / Systems

Built at

NatrajX

E-News 2.0 — High-Scale Media Ecosystem

Impact

100K+ concurrent users handled without degradation

Sub-50ms feed latency for cached requests

Fault-isolated: Live TV failure doesn't affect article feeds

Real-time WebSocket overlays for breaking news

Key Metrics

concurrent Users

100K+

feed Latency

<50ms (cached)

architecture

Domain-Driven Design

uptime

Fault-isolated, 100% news uptime

Tech Stack

GolangPythonRedis ClusterApache KafkaWebSocketsHLS / CDN

1. Problem

Traditional broadcast systems serve identical content to all users. Live TV traffic spikes (e.g. election results) crash article API servers. Personalisation is compute-heavy. A monolithic architecture cannot handle all three concerns simultaneously.

2. Domain-Driven Decomposition

  • Feed Service (Golang) — stateless, read-heavy, aggressive Redis caching
  • Streaming Service — HLS manifests, CDN offloading, short TTL
  • Personalization Engine (Python) — async, multi-factor ranking algorithm
  • Breaking News Layer — WebSocket overlays via Kafka event streaming

3. Deterministic Ranking (No Black-Box AI)


def compute_relevance_score(article, user_pref):
    cat_score   = user_pref["weights"].get(article["category"], 0)   # 40%
    bias_score  = 1.0 - abs(article["bias_val"] - user_pref["bias_val"])  # 30%
    hours_old   = (NOW - article["published_at"]).hours
    time_score  = 1.0 / (1.0 + 0.1 * hours_old)                     # 30%
    return 0.40 * cat_score + 0.30 * bias_score + 0.30 * time_score

4. Circuit Breaker Pattern


routes:
  - path: /feed/v1/*
    circuit_breaker:
      max_failures: 5
      timeout: 200ms
      fallback: generic-trending-feed   # graceful degradation
  - path: /stream/live/*
    caching:
      ttl: 5s   # short TTL for live manifests

5. Results

  • 100K+ concurrent connections in production
  • Fault isolation: each service fails independently
  • Transparent, explainable ranking (no opaque ML scoring)

This project was built at NatrajX — an AI/IT engineering agency.

Full engineering write-up, system architecture, and production metrics available on the agency site.

Full Case Study ↗