SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Building for India. 
Gearing for 100 Million users 
Paresh Goel 
All things Android, Hike Messenger
LAUNCH: DEC’2012 
AUG’14: 35M USERS IN 20 MONTHS 
INDIA: 90% OF USERBASE 
2
3 
Days 
WHERE WE ARE 
62.5 
50. 
37.5 
25. 
12.5 
0. 
0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 1050 1100 1150 1200 1250 1300 1350 1400 1450 1500 
Hike Twitter Facebook
WHERE WE ARE 
4 
Days 
62.5 
50. 
37.5 
25. 
12.5 
0. 
0 150 300 450 600 750 900 1050 1200 1350 1500 
Hike Twitter Facebook
BIGGEST INDIAN MOBILE 
APP
10 BILLION+ MESSAGES 
PER MONTH
What does Building for India mean?
What does Building for India mean, Technically ?
• Network optimisation. 
• Catering to low-end devices.
Network optimisations 
• Most people in India use sachet data packs. 
• It costs INR 3 / MB.
Client-Server Protocol 
• Has to be persistent. 
• Takes care of flaky network condition. 
• Consumes lesser bandwidth.
MQTT (Message Queue 
Telemetry Transport) 
• Network protocol for broadcasting and 
listening for information over network. 
• Lightweight: Header to Message ratio is less. 
• Publish / Subscribe mechanism. 
• Support for QoS Levels.
MQTT Message Format 
• A MQTT topology has a MQTT server and a 
MQTT client. 
• The protocol works by exchanging a series of 
MQTT Control Packets.
MQTT Control Packet 
Structure
CONNECT 
CONACK 
SUBSCRIBE 
SUBACK 
PUBLISH 
PUBACK 
DISCONNECT 
Client Server
CONNECT 
CONACK 
SUBSCRIBE 
SUBACK 
PUBLISH 
PUBACK 
DISCONNECT 
Client Server
CONNECT 
CONACK 
PUBLISH 
PUBACK 
DISCONNECT 
Client Server 
Auto-subscribe
QoS Levels 
• At most once. QoS=0 
• At least once. QoS=1 
• Exactly once. QoS=2
Active and Passive timeouts. 
• GCM Push for passive state. 
• Aggressive timeouts for active state.
File Transfer 
Optimisations.
3 BILLION+ STICKERS 
PER MONTH
LOCALIZED STICKERS 
INDIA
Avoid transfer when you can.
Don’t load images on scroll.
MD5 checksum 
MD5 
Key 
Publish with key 
Client Server
Use Unique Id 
Publish with Sticker Id 
Publish with Sticker Id 
use local file path 
Client 1 Server Client 2
Publish with Sticker Id 
Publish with Sticker Id 
Request File for Sticker Id 
File for Sticker Id 
Client 1 Server Client 2 
Add Entry
Transfer based on destination dpi.
Chunk sizes to cater to a flaky network connectivity.
Multi-threaded download.
Still playing: Chunk size could vary on actual speed at runtime.
Feature Optimisations 
App decisions are also based on minimising 
bandwidth consumption.
Bulk Packet 
In India, users may be offline for long periods of 
time. 
We send pending messages in one bulk packet. 
This reduces headers and corresponding Ack 
packets.
Last Seen 
We moved into a subscription rather than a 
broadcast mechanism.
Summary 
• Network Optimisations should be top priority 
• Choose bandwidth-optimised network 
protocol. 
• File Transfer - MD5, resolution based. 
• Feature decisions - optimise for network.
?
THANK YOU 
GO BIG OR GO HOME 
38
PARESH GOEL, 
HIKE MESSENGER 
paresh@hike.in
Your code is worth a Million ! 
hikeathon@hike.in 
19-21 Dec

Weitere ähnliche Inhalte

Was ist angesagt?

Asynchronous Messaging with NServiceBus
Asynchronous Messaging with NServiceBusAsynchronous Messaging with NServiceBus
Asynchronous Messaging with NServiceBus
Britt King
 

Was ist angesagt? (20)

Mj hd open nms
Mj hd open nmsMj hd open nms
Mj hd open nms
 
Dockerizing react app
Dockerizing react appDockerizing react app
Dockerizing react app
 
MongoDB Ops Manager
MongoDB Ops ManagerMongoDB Ops Manager
MongoDB Ops Manager
 
Build testable react app
Build testable react appBuild testable react app
Build testable react app
 
AWS Meetup - Nordstrom Data Lab and the AWS Cloud
AWS Meetup - Nordstrom Data Lab and the AWS CloudAWS Meetup - Nordstrom Data Lab and the AWS Cloud
AWS Meetup - Nordstrom Data Lab and the AWS Cloud
 
Serverless lessons learned #3 reserved concurrency
Serverless lessons learned #3 reserved concurrencyServerless lessons learned #3 reserved concurrency
Serverless lessons learned #3 reserved concurrency
 
Serverless lessons learned #2 dead letter queues
Serverless lessons learned #2 dead letter queuesServerless lessons learned #2 dead letter queues
Serverless lessons learned #2 dead letter queues
 
Tabtale story: Building a publishing and monitoring mobile games architecture...
Tabtale story: Building a publishing and monitoring mobile games architecture...Tabtale story: Building a publishing and monitoring mobile games architecture...
Tabtale story: Building a publishing and monitoring mobile games architecture...
 
What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0?
 
TabTale Architecture Overview
TabTale Architecture OverviewTabTale Architecture Overview
TabTale Architecture Overview
 
Ansible, MongoDB Ops Manager and AWS v1.1
Ansible, MongoDB Ops Manager and AWS v1.1Ansible, MongoDB Ops Manager and AWS v1.1
Ansible, MongoDB Ops Manager and AWS v1.1
 
Workers and Event processors that Scale
Workers and Event processors that ScaleWorkers and Event processors that Scale
Workers and Event processors that Scale
 
Full stack development tools & technologies
Full stack development tools & technologiesFull stack development tools & technologies
Full stack development tools & technologies
 
Serverless lessons learned #8 backoff
Serverless lessons learned #8 backoffServerless lessons learned #8 backoff
Serverless lessons learned #8 backoff
 
Serverless lessons learned #5 retries
Serverless lessons learned #5 retriesServerless lessons learned #5 retries
Serverless lessons learned #5 retries
 
Asynchronous Messaging with NServiceBus
Asynchronous Messaging with NServiceBusAsynchronous Messaging with NServiceBus
Asynchronous Messaging with NServiceBus
 
java in cloud - adopt cloud dev's DHARMA
java in cloud - adopt cloud dev's DHARMAjava in cloud - adopt cloud dev's DHARMA
java in cloud - adopt cloud dev's DHARMA
 
Serverless Computing with Azure Functions Best Practices
Serverless Computing with Azure Functions Best PracticesServerless Computing with Azure Functions Best Practices
Serverless Computing with Azure Functions Best Practices
 
Serverless Solutions for developers
Serverless Solutions for developersServerless Solutions for developers
Serverless Solutions for developers
 
Silverstripe CMS 4.9.0 release and beyound
Silverstripe CMS 4.9.0 release and beyoundSilverstripe CMS 4.9.0 release and beyound
Silverstripe CMS 4.9.0 release and beyound
 

Andere mochten auch

Hike 29 Presentation
Hike 29 PresentationHike 29 Presentation
Hike 29 Presentation
52 Hikes
 

Andere mochten auch (15)

Going Viral strategies shared by Pathik - Hike for #PNMeetup
Going Viral strategies shared by Pathik - Hike for #PNMeetupGoing Viral strategies shared by Pathik - Hike for #PNMeetup
Going Viral strategies shared by Pathik - Hike for #PNMeetup
 
Hike 29 Presentation
Hike 29 PresentationHike 29 Presentation
Hike 29 Presentation
 
WhatsApp Product Development Strategy - Imperial College London
WhatsApp Product Development Strategy - Imperial College LondonWhatsApp Product Development Strategy - Imperial College London
WhatsApp Product Development Strategy - Imperial College London
 
Kavin bharti mittal
Kavin bharti mittalKavin bharti mittal
Kavin bharti mittal
 
Hiking
HikingHiking
Hiking
 
WhatsApp architecture
WhatsApp architectureWhatsApp architecture
WhatsApp architecture
 
Meet-U, Lets Meet Strangers (Marketing Plan)
Meet-U, Lets Meet Strangers (Marketing Plan)Meet-U, Lets Meet Strangers (Marketing Plan)
Meet-U, Lets Meet Strangers (Marketing Plan)
 
3 Factors Driving the Youth Mobile Messenger Market
3 Factors Driving the Youth Mobile Messenger Market3 Factors Driving the Youth Mobile Messenger Market
3 Factors Driving the Youth Mobile Messenger Market
 
Line, WeChat, WhatsApp Marketing by Silver Mouse
Line, WeChat, WhatsApp Marketing by Silver MouseLine, WeChat, WhatsApp Marketing by Silver Mouse
Line, WeChat, WhatsApp Marketing by Silver Mouse
 
Conquête du marché de Happn, application de rencontre mobile
Conquête du marché de Happn, application de rencontre mobileConquête du marché de Happn, application de rencontre mobile
Conquête du marché de Happn, application de rencontre mobile
 
Building a Community in the 21st Century
Building a Community in the 21st CenturyBuilding a Community in the 21st Century
Building a Community in the 21st Century
 
Line, Wechat, Whatsapp Marketing by APAC Venture
Line, Wechat, Whatsapp Marketing by APAC VentureLine, Wechat, Whatsapp Marketing by APAC Venture
Line, Wechat, Whatsapp Marketing by APAC Venture
 
DPC #5 - Mobile Marketing Made Different (WeChat Marketing)
DPC #5 - Mobile Marketing Made Different (WeChat Marketing)DPC #5 - Mobile Marketing Made Different (WeChat Marketing)
DPC #5 - Mobile Marketing Made Different (WeChat Marketing)
 
Happn - NOAH15 London
Happn - NOAH15 London Happn - NOAH15 London
Happn - NOAH15 London
 
Marketing Plan for an App (ParkAid)
Marketing Plan for an App (ParkAid)Marketing Plan for an App (ParkAid)
Marketing Plan for an App (ParkAid)
 

Ähnlich wie Android: Building for India. Gearing for 100 Million Users - Learnings from Building for Hike

Ähnlich wie Android: Building for India. Gearing for 100 Million Users - Learnings from Building for Hike (20)

Cloud journey mikevilliger
Cloud journey mikevilligerCloud journey mikevilliger
Cloud journey mikevilliger
 
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
 
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
The Journey to Becoming Cloud Native – A Three Step Path to Modernizing Appli...
 
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
 
BDA403 The Visible Network: How Netflix Uses Kinesis Streams to Monitor Appli...
BDA403 The Visible Network: How Netflix Uses Kinesis Streams to Monitor Appli...BDA403 The Visible Network: How Netflix Uses Kinesis Streams to Monitor Appli...
BDA403 The Visible Network: How Netflix Uses Kinesis Streams to Monitor Appli...
 
Customer Keynote - Microsoft Lync
Customer Keynote - Microsoft LyncCustomer Keynote - Microsoft Lync
Customer Keynote - Microsoft Lync
 
AWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the CloudAWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the Cloud
 
Architecture of a Kafka camus infrastructure
Architecture of a Kafka camus infrastructureArchitecture of a Kafka camus infrastructure
Architecture of a Kafka camus infrastructure
 
PLNOG 22 - Sebastian Grabski - Is your network ready for application from the...
PLNOG 22 - Sebastian Grabski - Is your network ready for application from the...PLNOG 22 - Sebastian Grabski - Is your network ready for application from the...
PLNOG 22 - Sebastian Grabski - Is your network ready for application from the...
 
F_1330_Narkhede_Kafka .pptx
F_1330_Narkhede_Kafka .pptxF_1330_Narkhede_Kafka .pptx
F_1330_Narkhede_Kafka .pptx
 
5 maximazing networkcapacity_v4-jorge_alvarado
5 maximazing networkcapacity_v4-jorge_alvarado5 maximazing networkcapacity_v4-jorge_alvarado
5 maximazing networkcapacity_v4-jorge_alvarado
 
How Tencent Applies Apache Pulsar to Apache InLong —— A Streaming Data Integr...
How Tencent Applies Apache Pulsar to Apache InLong —— A Streaming Data Integr...How Tencent Applies Apache Pulsar to Apache InLong —— A Streaming Data Integr...
How Tencent Applies Apache Pulsar to Apache InLong —— A Streaming Data Integr...
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
 
Network
NetworkNetwork
Network
 
Realtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sightRealtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sight
 
Innovation in SDN Tools and Platforms
Innovation in SDN Tools and PlatformsInnovation in SDN Tools and Platforms
Innovation in SDN Tools and Platforms
 
IoT Communication protocols Overview
IoT Communication protocols OverviewIoT Communication protocols Overview
IoT Communication protocols Overview
 
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
[AWS에서의 미디어 및 엔터테인먼트] 클라우드에서의 브로드캐스팅 서비스
 
[English]Medium Inc Company Profile
[English]Medium Inc Company Profile[English]Medium Inc Company Profile
[English]Medium Inc Company Profile
 

Android: Building for India. Gearing for 100 Million Users - Learnings from Building for Hike