the journey of flipkart mobile platform

20
Building Mobile Platforms for Massive Scale and Differentiated User Experience Regunath B, Principal Architect, Flipkart Amar Nagaram, Sr. Engineering Manager, Flipkart

Upload: amar-nagaram

Post on 06-Jul-2015

522 views

Category:

Mobile


1 download

DESCRIPTION

This is a sneak peak into the journey of Flipkart Mobile platform, the way it went through lot of iterations to make it ready for massive scale and a differentiated experience. Please reach out to me if you want to know in detail or you have any follow up questions. Twiitter: @_amar_n

TRANSCRIPT

Page 1: The Journey of Flipkart Mobile Platform

Building Mobile Platforms for Massive Scale and Differentiated User Experience

Regunath B, Principal Architect, Flipkart

Amar Nagaram, Sr. Engineering Manager, Flipkart

Page 2: The Journey of Flipkart Mobile Platform

Retail App (there are so many...)

Search and navigation

View product, reviews

Buy

Track status

Social integration

Zoom, Bar-code scan

Page 3: The Journey of Flipkart Mobile Platform

eBook App (not a common app...)

Search, browse, read sample

Buy, read from multiple devices

Gesture interface

Sync reading location, offline mode

Dictionary, notes

Page 4: The Journey of Flipkart Mobile Platform

slashn Event App(why app..?)

Location, Schedule, Speakers

QR code event pass

Customize schedule

Rate presentations

Page 5: The Journey of Flipkart Mobile Platform

Why Build Apps?

• Anytime, anywhere access (mostly)

• Growth in smart phone user base

• Mobile internet(3G, 2G) reach wider than desktop(DSL)

• Better personalization

• Gesture based user experience

• More secure (2 Factor authentication)

• Simpler checkoutAdoption @ Flipkart : >20% of orders placed and growing

Page 6: The Journey of Flipkart Mobile Platform

Attempt1 : Building Scalable and Differentiated User Experience

Page 7: The Journey of Flipkart Mobile Platform

Standards and Productivity

Stacks- Hybrid views (HTML5) for portability

- Standard navigation

- Quick to develop interactions

- Web API- Wrapper based integration with backend systems

- Push Notifications(StackMob, AirShip) - Offline experience- Data availability across devices

- Cloud data service (StackMob, OpenMobster)

Page 8: The Journey of Flipkart Mobile Platform

Ratings & Reviews(then)

Page 9: The Journey of Flipkart Mobile Platform

Sub-optimal User Experience

• Software on Device : Responsiveness of app, Resource usage

• Network : Ability to deal with slow/broken network connectivity– Latencies of services located in far of geographies

•e.g. 3 seconds to exchange 2K data using StackMob

• API Platform : Latencies, Fault tolerance

• Engagement : Notifications, Usage

– Relevance of Notifications

– Tracking installs, failures in accessing data

Page 10: The Journey of Flipkart Mobile Platform

Attempt2 : Building Scalable and Differentiated User ExperienceWhy User Experience Matters(across platforms, networks, features, time)

Page 11: The Journey of Flipkart Mobile Platform

Cue the Numbers

• Only 16% of users return to an app that fails to load fast

• Ideal app launch time : 2 seconds

• Average Indian network data speed : 0.9 mbps

• API Platform latencies : has to be < 500ms

Scale fast Install base : 1 M Android installs in 6 months

Traffic growth : 75% MoM

Per user engagement growing MoM

Page 12: The Journey of Flipkart Mobile Platform

Architecture decisions

• Native device user interface

• Server controlled layouts – A/B configurable

– Page composition using reusable widgets

• Fault-tolerant, parallel service calls

• Availability vs. Consistency tradeoffs

– Distributed and local caches

• Prevent cascading failures

– Timeouts, Threadpools control resource usage

• Ability to operate in disconnected mode

– Offline data store, sync support

Page 13: The Journey of Flipkart Mobile Platform

Architecture decisions

• User experience on slow networks– Low resolution images, preference for text over

image

• Content specific user engagement– Deep linked Push Notifications

– In-app notifications

• Data driven decision making, features

– Usage information, Performance statistics

Page 14: The Journey of Flipkart Mobile Platform

Stacks Optimized for User

Experience- Native views with optimized rendering- Gesture navigation- Fluid, friction free interactions

- Mobile Gateway/API- Transparent integration into other backend systems- Resilience, Low latency execution

- Multicast (Targeted)

- Personalized

- Platform agnostic

- Interactive

- Context sensitive

-

Jetty, Lego, Phantom FlipCast Notifications FlipSync Offline mode

- Disconnected mode

- Near real-time sync

- Data availability across devices & web

Hyperion analytics

- Usage information

- Errors/crashes

- Performance statistics

- Soft real-time trends

- Feedback/insights

Page 15: The Journey of Flipkart Mobile Platform

APIs on Lego, Phantom

REST Controllers

PageBuilder PageBuilder PageBuilder

WidgetBuilder WidgetBuilder WidgetBuilder

HandlerRepository

- Jetty Http Interface

- MVC controllers

- Lego libraries

- MVC model builders

- Futures used in Scatter/Gather data read patterns

- Phantom Resilience layer

- Availability knobs : timeouts, fallbacks, throttling

- Real-time monitor

Proxy Command

Page 16: The Journey of Flipkart Mobile Platform

Operating the API Platform –Phantom Console

https://github.com/Flipkart/phantom (Flipkart OSS)

Page 17: The Journey of Flipkart Mobile Platform

FlipCast Notifications• Supported Platforms

– iOS, Android, Windows Phone 8

• Features

Device register/unregister API

Configurable push message payloads

Automatic housekeeping for invalid

devices

Automatic/Transparent retry and

sidelining

Message history management

Pluggable data source (Default:

MongoDB)

Automatic backpressure management

Unicast, Multicast & Broadcast Push

API

Auto Batching for multicast & broadcast

push

• Tech stack– spray.io, akka.io

– RabbitMQ

– MongoDB

Page 18: The Journey of Flipkart Mobile Platform

Hyperion Analytics

• REST style Event API for data injestion

• Replicated and Partitioned Kafka message queue

• Distributed stream processor using Storm

• HBase event data store

• MongoDB Query data store

• Search and aggregation API on query data store

Page 19: The Journey of Flipkart Mobile Platform

Hyperion Analytics

Page 20: The Journey of Flipkart Mobile Platform

Installs, Ratings & Reviews(now)

Installs : 5,000,000 - 10,000,000

Installs : 100,000 - 500,000