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

The Journey of Flipkart Mobile Platform

Embed Size (px)

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

Citation preview

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