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

What's hot (20)

PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Matt Raible
 
PPTX
Angular - Beginner
Riccardo Masetti
 
PPTX
Single Page WebApp Architecture
Morgan Cheng
 
PPTX
GDG Atlanta - Angular.js Demo and Workshop
Drew Morris
 
PDF
JavaScript Patterns and Principles
Aaronius
 
KEY
a-blog cms 勉強会 NAGOYA 20110718
Ayumu Sato
 
PDF
Getting Started with Angular - Stormpath Webinar, January 2017
Matt Raible
 
PPTX
Angular js
Mindtree
 
PPTX
Introduction to AngularJS Framework
Raveendra R
 
PPTX
Java script performance tips
Shakti Shrestha
 
DOCX
Shaping up with angular JS
Brajesh Yadav
 
PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Matt Raible
 
PDF
Make your Backbone Application dance
Nicholas Valbusa
 
PDF
Muhammad azamuddin introduction-to-reactjs
PHP Indonesia
 
PPTX
Angularjs PPT
Amit Baghel
 
PDF
Angular js - 10 reasons to choose angularjs
Nir Kaufman
 
PDF
Angularjs tutorial
HarikaReddy115
 
PPTX
Angular js presentation at Datacom
David Xi Peng Yang
 
PDF
Maven Tutorial for Beginners | Edureka
Edureka!
 
ODP
Using WordPress for Rapid Prototyping
Drew Morris
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Matt Raible
 
Angular - Beginner
Riccardo Masetti
 
Single Page WebApp Architecture
Morgan Cheng
 
GDG Atlanta - Angular.js Demo and Workshop
Drew Morris
 
JavaScript Patterns and Principles
Aaronius
 
a-blog cms 勉強会 NAGOYA 20110718
Ayumu Sato
 
Getting Started with Angular - Stormpath Webinar, January 2017
Matt Raible
 
Angular js
Mindtree
 
Introduction to AngularJS Framework
Raveendra R
 
Java script performance tips
Shakti Shrestha
 
Shaping up with angular JS
Brajesh Yadav
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Matt Raible
 
Make your Backbone Application dance
Nicholas Valbusa
 
Muhammad azamuddin introduction-to-reactjs
PHP Indonesia
 
Angularjs PPT
Amit Baghel
 
Angular js - 10 reasons to choose angularjs
Nir Kaufman
 
Angularjs tutorial
HarikaReddy115
 
Angular js presentation at Datacom
David Xi Peng Yang
 
Maven Tutorial for Beginners | Edureka
Edureka!
 
Using WordPress for Rapid Prototyping
Drew Morris
 

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

PPTX
Building a Better BaaS
Apigee | Google Cloud
 
PPTX
A great api is hard to find
Dan Diephouse
 
PDF
Deep Dive: Strategic Importance of BaaS
Apigee | Google Cloud
 
KEY
Why we chose mongodb for guardian.co.uk
Graham Tackley
 
PDF
BPM and SOA Are Going Mobile: An Architectural Perspective
Guido Schmutz
 
PDF
SQL? NoSQL? NewSQL?!? What’s a Java developer to do? - JDC2012 Cairo, Egypt
Chris Richardson
 
PDF
Hpc lunch and learn
John D Almon
 
PDF
Brandon
Brandon Smith
 
PPTX
Mtn view sql server nov 2014
EspressoLogic
 
KEY
Moving from Relational to Document Store
Graham Tackley
 
PPTX
Using Google App Engine Python
Akshay Mathur
 
PPTX
Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood
Manish Pandit
 
PPTX
Leapfrogging with legacy
clive boulton
 
KEY
Software architectures for the cloud
Georgios Gousios
 
PPTX
Inside Wordnik's Architecture
Tony Tam
 
ODP
Platform as a Service overview
Miguel Pastor
 
PDF
Scaling Instagram
iammutex
 
PDF
89025069 mike-krieger-instagram-at-the-airbnb-tech-talk-on-scaling-instagram
ferreroroche11
 
PDF
Modern Architectures with Spring and JavaScript
martinlippert
 
PDF
Software development - the java perspective
Alin Pandichi
 
Building a Better BaaS
Apigee | Google Cloud
 
A great api is hard to find
Dan Diephouse
 
Deep Dive: Strategic Importance of BaaS
Apigee | Google Cloud
 
Why we chose mongodb for guardian.co.uk
Graham Tackley
 
BPM and SOA Are Going Mobile: An Architectural Perspective
Guido Schmutz
 
SQL? NoSQL? NewSQL?!? What’s a Java developer to do? - JDC2012 Cairo, Egypt
Chris Richardson
 
Hpc lunch and learn
John D Almon
 
Brandon
Brandon Smith
 
Mtn view sql server nov 2014
EspressoLogic
 
Moving from Relational to Document Store
Graham Tackley
 
Using Google App Engine Python
Akshay Mathur
 
Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood
Manish Pandit
 
Leapfrogging with legacy
clive boulton
 
Software architectures for the cloud
Georgios Gousios
 
Inside Wordnik's Architecture
Tony Tam
 
Platform as a Service overview
Miguel Pastor
 
Scaling Instagram
iammutex
 
89025069 mike-krieger-instagram-at-the-airbnb-tech-talk-on-scaling-instagram
ferreroroche11
 
Modern Architectures with Spring and JavaScript
martinlippert
 
Software development - the java perspective
Alin Pandichi
 
Ad

More from Apigee | Google Cloud (20)

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

Recently uploaded (20)

PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Digital Circuits, important subject in CS
contactparinay1
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 

Designing and Implementing a Multiuser Apps Platform