Telco simulator
with Spark + Akka + Kafka

Real Impact Analytics

Thoralf Gutierrez

Who am I?

  • Computer Engineering
    Artificial Intelligence

  • Data Scientist
    Software Engineer

Data

Call Detail Record (CDR)
Date — Time — Duration
Billing — Recharge — Money transfer
Social Network
Antenna's geolocalisation
Network information
Data usage — URL — App

Missions

Operational optimization Campaign managment
Drive field actions
Improve network coverage
Performance tracking
Stock management
Managed services
Data commercialization
Improve marketing
Strengthen subscriber acquisitions
Acquire competitor market
Increase cross-sales
Reduce churn
Target high value subscribers
A/B test campaign messages
Compute campaign's ROI

Treating telco/banking data of 300,000,000 subscribers daily

Active in 35+ countries

Is this a lot?

4.1% of world population

10% of africa's population


Still Room for growth

What do we struggle with?

  • Benchmarking
  • Stress testing for data quantity increase
  • Prepare for worst case scenario
  • Convince prospect

Solution?

Simulate a real world telecommunication provider

Telco Simulator

Genesis

Requirements

  • Be as close as possible to reality
    social behaviours, mobility paterns, activity distibutions, ...
  • Be able to simulate the bigest telco providers
    China Mobile: 800M subscribers

What did we build?

Nature


God

What's what ?

Egnine for large-scale data processing
GraphX is Spark's API for graph-parallel computation

Framework to build actor-based concurrent systems

Distributed log-based messaging system

God

God creates the world

  • the antennas based on the geography
  • the subscribers based on
    • operators + number of subs
    • profiles for each operator (social + mobility)
    • geographical distribution of the population
  • the social graph based on social profiles

Nature

Nature brings it to life

Future challenges

  • mobility
    who is where ?
  • synchronisation
    is eveybody at the same time ?

Synchronisation : Async

  • The clock sends the time to everyone
  • Every actor advances at his own pace (his message queue)
  • Simple
  • But we can't make any supposition about time ...

Synchronisation : Sync

  • The clock waits for eveybody to finish
    before sending the next tick
  • Every actor advances at the same pace
  • As slow as the slowest actor
  • We can make suppositions about time

Synchronisation : Sync

black Star Glasses image/svg+xml Layer 1

We are hiring (nerds)!

Product Owners, MEAN Stack, QA, Devops
Lead Architect, Head of Engineering

tg@ria.bi