---
# System prepended metadata

title: SIDDHARTH PANIGRAHI

---

# SIDDHARTH PANIGRAHI | R2 | 8 yrs exp
- 


# Question 1: Current System 


Eatsure - website, android and ios application

User -> type his location / provide the access

Apps -> WAF -> Public ALBs -> Apigateway -> private ALBs -> AWS ECS -> Geo, d2c_storefront (3, 5 to 8/15 (6GB RAM)) :: Elasticache Redis

Airbrake, Datadog, ELK

CMS -> MySQL (AWS aurora - 3R:1W) (S3 - static JSON menus)

api gateway -> 
geo service -> google/ map my india apis -> get a lat long for this user



# Question 2: HLD

click -> events. 

Clevertap - 
    - low latency 
    - high traffic
    
    
Functional reqmts -
onbaording clients and storing info
Capturing events (client id, user_id, EVENT_Tag, timestamp) -> store

Assumptions
Clients = 1000
End_users = 1000 M -> DAUs = 25M
Events -> 2500M = 2.5B events
each event => 100 bytes 

storage = 2.5 * 100 * 365 * 3 = 273750 B bytes = 273750 GB = 275 TBs
write-heavy = unstructured, append only => no SQL -> cassandra

Qps -> 
Active users per second = 25M/ 86400 = ~300 users 
3 events per second -> 900 events ps 
QPS = 900;
3.2 M users/hour
Load balancers -> gateway service (ECS, 5-10 servers) (auth, data cleaning) -> Queue (Kafka) -> storage service (write data to DB)
                    -> analytics service (perform queries) -> read from DB
                    
Gateway -> Redis (token storage)

3.2m * 10 * 3 = 96 million events per minute

10 Queues - replication of 3

1 consumer (6gb ram) -> in a minute 1000 MB => 10000 events/minute
no of servers - 9000 -> distribute geographically :: zones in which users lie
                        client wise partition :: client - user distribution -> allot a zone
async replicate data to read DB (partition by client zone)

