SlideShare a Scribd company logo
Designing &
Implementing
   a Multiuser
Apps Platform
Hi I’m
Ed Anuff
apigee
Apigee
API Management
API Analytics
API Tools
Usergrid
Backend-as-a-
Service
& Open Source
Mobile and
App, Cloud, & HTTP
No Web Stack

       Page
     Templates
     MVC Logic

     Database
Just Apps and APIs
                  User Management!           Datastore!




    Analytics!                                                      Location!




         Social Graph!                                    Activity Streams!




                                Messaging!
What do we
really want in 2012?
/users
/groups
/users/me/followers
/restaurants
/products
/car-washes
/<whatever>
POST /devices/<id>
POST /events
{ “category” : “ads”,
 “counters” : {
   “ad_clicks” : 5
 }
}
/users/bieber/friends/s
/users/ed/likes/foods/
GET /restaurants?
near=37.803, -
122.404
GET /restaurants?
ql=name contains
‘pizza’ and within
5m of 39.962,-
105.114
POST
/users/me/activities
{ “title”: “look”,
 “location”: …}
GET /users/me/feed
[{ “title”: “Ed ate a
slice of pizza”,
“location”: …}]
postUserActivity(me,
activity)
[client
postUserActivity:
“me” activity:
activityObj]
/token?
grant_type=...
/auth/facebook?
fb_access_token=…
/users?
filter=facebook.first_n
eq 'john'
/users?ql=name eq
'john' and
facebook.education.
school.name
contains '...'
That’s what
Usergrid is.
Building a
Push-Button
Platform
Not about single
apps
        Page
      Templates
      MVC Logic

      Database
Not about single
apps
        Page
      Templates
      MVC Logic

      Database
Lots of Teams...



Team   Team    Team
Lots of Apps...


App     App       App

        Team
And App Users...


       App

       Team
And data and
devices

       App

       Team
It’s really hard to
build for this...
It’s about seamless
data sharding...
and designing for
unpredicable API
traffic...
and it’s about doing
a lot of hard stuff so
other people don’t
have to.
So, what’s inside?
The usual stuff...
JVM
Java
Spring
Jersey
Jackson
Cassandra
JVM
Java
Spring
Jersey
Jackson
Cassandra ???
Cassandra should
be the only one that
gives you pause
What else could I
have used?
MySQL?
Oracle?
MongoDB?
Not so hot for this...


App   App   App   App   App   App

  Team        Team        Team
Schema     Separate Database Shared Database
Shared




                Lame             Hmm
Separate
Schema




                 No               Ugh
CREATE
DATABASE


 ALTER
 TABLE
Sharding SQL is too
much work.
Oracle is too much
money.
Most NoSQL works
at the wrong
abstraction level.
So Cassandra...
Cassandra sucks.
But you can teach it
great tricks.
Everything you hate
about Cassandra
I love
Build your own
indexes!
Build your own
query system!
Build your own
storage format!
Build your own
multi-tenancy
strategy!
Time to assemble:
2 months
Times I’ve regretted
doing this:
0
What else sucked?
1. Consistency
2. API Design
3. Permissions
4. Built-In Logic
5. Operations
1. Consistency
ZooKeeper and
Amazon
Whitepapers won’t
save you
2. API Design
“Surrender to a
Higher Power
(whatever it might
be)”
All hail Roy Fielding
REST drove the
design
REST drove the
scalability
REST drove the
scalability
Access Model
REST drove the
scalability
Access Model
Query Model
REST drove the
scalability
Access Model
Query Model
Denormalization Strategy
3. Permissions
3. Permissions

OAuth
Token
Management
Per-request
Overhead
4. Built-in Logic
4. Built-in Logic

Sign-in Flows
Activity Streams
User/Group Management
5. Operations
Keep it simple and
elastic
                            Tomcat
                           Tomcat
                         Tomcat
                       Tomcat
Tomcat   Tomcat      Tomcat


         Cassandra Cluster
Running
with it.
Projects have
a will of their own
Counters
Logs
Admin UI
Designing and Implementing a Multiuser Apps Platform
HyperMedia API
Sencha
jQuery
Backbone
PhoneGap
Tiggzi
What do we
want in 2013?
Take it for granted
and run with it.
Use the ideas
Use the code
Use the cloud
usergrid.com
git.io/usergrid
Mobile Client
Mobile Experience
API
Web Version
Building apps in
2005
was very different
LAMP
is not multi-tenant
LAMP
is not multi-server
LAMP
does too little
LAMP
does too much
Rails, Django, Node
don’t change the
overall architecture
NOSQL works at the
wrong abstraction
level.
PaaS is still the
same thing
(to some extent)

More Related Content

PPTX
phonegap with angular js for freshers
PDF
Intro to AngularJS
PDF
Wulin kungfu final
PDF
Marionette: Building your first app
PPTX
Kickstart sencha extjs
KEY
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
PPTX
AngularJS is awesome
PPTX
Organized web app development using backbone.js
phonegap with angular js for freshers
Intro to AngularJS
Wulin kungfu final
Marionette: Building your first app
Kickstart sencha extjs
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
AngularJS is awesome
Organized web app development using backbone.js

What's hot (20)

PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
PPTX
Angular - Beginner
PPTX
Single Page WebApp Architecture
PPTX
GDG Atlanta - Angular.js Demo and Workshop
PDF
JavaScript Patterns and Principles
KEY
a-blog cms 勉強会 NAGOYA 20110718
PDF
Getting Started with Angular - Stormpath Webinar, January 2017
PPTX
Angular js
PPTX
Introduction to AngularJS Framework
PPTX
Java script performance tips
DOCX
Shaping up with angular JS
PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
PDF
Make your Backbone Application dance
PDF
Muhammad azamuddin introduction-to-reactjs
PPTX
Angularjs PPT
PDF
Angular js - 10 reasons to choose angularjs
PDF
Angularjs tutorial
PPTX
Angular js presentation at Datacom
PDF
Maven Tutorial for Beginners | Edureka
ODP
Using WordPress for Rapid Prototyping
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Angular - Beginner
Single Page WebApp Architecture
GDG Atlanta - Angular.js Demo and Workshop
JavaScript Patterns and Principles
a-blog cms 勉強会 NAGOYA 20110718
Getting Started with Angular - Stormpath Webinar, January 2017
Angular js
Introduction to AngularJS Framework
Java script performance tips
Shaping up with angular JS
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Make your Backbone Application dance
Muhammad azamuddin introduction-to-reactjs
Angularjs PPT
Angular js - 10 reasons to choose angularjs
Angularjs tutorial
Angular js presentation at Datacom
Maven Tutorial for Beginners | Edureka
Using WordPress for Rapid Prototyping
Ad

Similar to Designing and Implementing a Multiuser Apps Platform (20)

PDF
Cross Platform Mobile Apps with the Ionic Framework
PPTX
Angular JS - Introduction
PPTX
Angular JS, A dive to concepts
PPTX
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
PDF
Google App Engine for Java v0.0.2
PDF
Building a full-stack app with Golang and Google Cloud Platform in one week
PPTX
API Athens Meetup - API standards 25-6-2014
PPTX
API Athens Meetup - API standards 25-6-2014
PPTX
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
PDF
We are the music makers and we are the dreamers of dreams
PDF
AngularJS in Production (CTO Forum)
PPT
Google Cloud Developer Challenge - GDG Belgaum
PPT
Advanced Web Development
PDF
Angular js mobile jsday 2014 - Verona 14 may
PDF
From Idea to App (or “How we roll at Small Town Heroes”)
PPTX
Mean stack Magics
PDF
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
PPTX
Angular js workshop
PDF
MohitKumarGupta_Resume
PDF
Service worker API
Cross Platform Mobile Apps with the Ionic Framework
Angular JS - Introduction
Angular JS, A dive to concepts
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
Google App Engine for Java v0.0.2
Building a full-stack app with Golang and Google Cloud Platform in one week
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards 25-6-2014
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
We are the music makers and we are the dreamers of dreams
AngularJS in Production (CTO Forum)
Google Cloud Developer Challenge - GDG Belgaum
Advanced Web Development
Angular js mobile jsday 2014 - Verona 14 may
From Idea to App (or “How we roll at Small Town Heroes”)
Mean stack Magics
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
Angular js workshop
MohitKumarGupta_Resume
Service worker API
Ad

More from Apigee | Google Cloud (20)

PDF
How Secure Are Your APIs?
PDF
Magazine Luiza at a glance (1)
PPTX
Monetization: Unlock More Value from Your APIs
PDF
Apigee Demo: API Platform Overview
PDF
Ticketmaster at a glance
PDF
AccuWeather: Recasting API Experiences in a Developer-First World
PDF
Which Application Modernization Pattern Is Right For You?
PPTX
Apigee Product Roadmap Part 2
PPTX
The Four Transformative Forces of the API Management Market
PDF
Walgreens at a glance
PDF
Apigee Edge: Intro to Microgateway
PDF
Managing the Complexity of Microservices Deployments
PDF
Pitney Bowes at a glance
PPTX
Microservices Done Right: Key Ingredients for Microservices Success
PDF
Adapt or Die: Opening Keynote with Chet Kapoor
PDF
Adapt or Die: Keynote with Greg Brail
PDF
Adapt or Die: Keynote with Anant Jhingran
PDF
London Adapt or Die: Opening Keynot
PDF
London Adapt or Die: Lunch keynote
PDF
London Adapt or Die: Closing Keynote — Adapt Now!
How Secure Are Your APIs?
Magazine Luiza at a glance (1)
Monetization: Unlock More Value from Your APIs
Apigee Demo: API Platform Overview
Ticketmaster at a glance
AccuWeather: Recasting API Experiences in a Developer-First World
Which Application Modernization Pattern Is Right For You?
Apigee Product Roadmap Part 2
The Four Transformative Forces of the API Management Market
Walgreens at a glance
Apigee Edge: Intro to Microgateway
Managing the Complexity of Microservices Deployments
Pitney Bowes at a glance
Microservices Done Right: Key Ingredients for Microservices Success
Adapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Anant Jhingran
London Adapt or Die: Opening Keynot
London Adapt or Die: Lunch keynote
London Adapt or Die: Closing Keynote — Adapt Now!

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
KodekX | Application Modernization Development
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Modernizing your data center with Dell and AMD
PPT
Teaching material agriculture food technology
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Encapsulation theory and applications.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The AUB Centre for AI in Media Proposal.docx
Network Security Unit 5.pdf for BCA BBA.
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
KodekX | Application Modernization Development
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Modernizing your data center with Dell and AMD
Teaching material agriculture food technology
NewMind AI Weekly Chronicles - August'25 Week I
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Reach Out and Touch Someone: Haptics and Empathic Computing
Unlocking AI with Model Context Protocol (MCP)
Encapsulation theory and applications.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
The Rise and Fall of 3GPP – Time for a Sabbatical?
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Designing and Implementing a Multiuser Apps Platform