This is a comment. 
The Rise of BaaS 
A Utopia for Client-Side Developers 
Saturday, March 15, 14 1
State of the Union 
How client-side applications are built today 
Saturday, March 15, 14 2
CLIENT SIDE APP APIs 
Web 
Server 
DATA 
MANAGEMENT 
USER 
MANAGEMENT 
BUSINESS 
LOGIC 
Hosting Tooling 
* your backend serves up data that your client-side 
code uses to render the different views 
* when your view needs to change the client-side 
code makes a request to the backend to 
re-render the view via xhr or websocket 
* talk to the backend to perform any action or to 
talk to third-party api's 
BUSINESS LOGIC 
Saturday, March 15, 14 3 
• your backend serves up data that your client-side code uses to render the different views 
• when your view needs to change the client-side code makes a request to the backend to re-render the view via xhr or websocket 
• talk to the backend to perform any action or to talk to third-party api's
How often do you change your 
backend to support the needs 
of your client side app? 
Saturday, March 15, 14 4
How often must you 
upgrade your back-end to 
extend your application? 
Constantly. 
* data and access controls (all the security) lives 
inside the backend so in order to extend your 
application you have to build out new routes 
Saturday, March 15, 14 5 
• data and access controls (all the security) lives inside the backend so in order to extend your application you have to build out new routes
The chase 
begins 
Saturday, March 15, 14 6 
The communication nightmare kicks-off, the standard formation in most companies is that the client-side guys handle the users world and the back-end guys write the backend. 
Now, to make a change that the back-end doesn't support means that you have to coordinate with them to build out the feature. 
So instead of focusing on building an amazing application for your customers, you end up spending time working with the back-end team and their schedule.
So what do we settle for? 
APIs 
DATA MANAGEMENT 
Storage 
Saturday, March 15, 14 7 
The communication nightmare kicks-off
Every application has unique requirements 
DATA MANAGEMENT 
USER 
MANAGEMENT 
HOSTING 
SECURITY 
Saturday, March 15, 14 8 
Blog: 
• Comments, users and posts 
• Each post has a user and many comments 
• You want to order the posts by date and select a range of them, perhaps you also want to filter by category 
• Similar, for comments, you want to order by date and select a range of them 
• For users, you need some sort of authentication and user management system 
• For creating posts, you want some type of user admin role
Let’s face reality, we’ve been 
reinventing the wheel 
And it’s a fracking head-ache. 
Saturday, March 15, 14 9
This approach has consequences 
Saturday, March 15, 14 10 
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
This approach has consequences 
• Tightly coupled to the 
server 
Saturday, March 15, 14 10 
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
This approach has consequences 
• Tightly coupled to the 
server 
• Inflexible 
Saturday, March 15, 14 10 
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
This approach has consequences 
• Tightly coupled to the 
server 
• Inflexible 
• Expensive 
Saturday, March 15, 14 10 
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
This approach has consequences 
• Tightly coupled to the 
server 
• Inflexible 
• Expensive 
• Incomplete 
Saturday, March 15, 14 10 
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
This approach has consequences 
• Tightly coupled to the 
server 
• Inflexible 
• Expensive 
• Incomplete 
• Limited extensibility 
Saturday, March 15, 14 10 
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
This approach has consequences 
• Tightly coupled to the 
server 
• Inflexible 
• Expensive 
• Incomplete 
• Limited extensibility 
• The list as you know, 
does not end here 
Saturday, March 15, 14 10 
Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
Imagine for a moment, the 
ultimate back-end. 
One that could fuel 
any & every feature. 
Saturday, March 15, 14 11
Ian Livingstone 
VP Engineering, GoInstant 
@ianlivingstone 
Saturday, March 15, 14 12
We’re obsessive about 
this problem. 
Saturday, March 15, 14 13 
Started as co-browse, started transitioning BaaS because we found we needed every component, and none existed.
Saturday, March 15, 14 14
The question that keeps us 
up at night? 
Saturday, March 15, 14 14
The question that keeps us 
up at night? 
What would this ultimate 
backend look like? 
Saturday, March 15, 14 14
The Vision: BaaS 
Saturday, March 15, 14 15
The Vision: BaaS 
One really really awesome 
round wheel, we all share. 
Saturday, March 15, 14 15
CLIENT SIDE APP APIs 
Web 
Server 
DATA 
MANAGEMENT 
USER 
MANAGEMENT 
BaaS 
Hosting Tooling 
BUSINESS LOGIC 
Saturday, March 15, 14 16
CLIENT SIDE APP APIs 
Web 
Server 
Hosting Tooling 
DATA 
MANAGEMENT 
USER 
MANAGEMENT 
BaaS 
BUSINESS LOGIC 
Saturday, March 15, 14 16
CLIENT SIDE APP APIs 
Web 
Server 
Hosting Tooling 
DATA 
MANAGEMENT 
USER 
MANAGEMENT 
BaaS 
BUSINESS LOGIC 
Saturday, March 15, 14 16
CLIENT SIDE APP APIs 
Web 
Server 
Hosting Tooling 
DATA 
MANAGEMENT 
USER 
MANAGEMENT 
BaaS 
BUSINESS LOGIC 
Saturday, March 15, 14 16
Ok that looks awesome 
Let’s make it a reality! 
Saturday, March 15, 14 17
Connectivity 
web sockets and xhr-polling we have the 
technology to create "full-duplex" connections 
even in older browsers 
this gives us a mechanism for pushing data 
between server and client 
Saturday, March 15, 14 18 
• web sockets and xhr-polling we have the technology to create "full-duplex" connections even in older browsers 
• this gives us a mechanism for pushing data between server and client
Data Management 
* already exists just needs an API 
built for it on the client 
* support querying 
* transactions 
* all json types 
Saturday, March 15, 14 19 
• already exists just needs an API built for it on the client 
• support querying 
• transactions 
• all json type
User Management 
* built on-top of the data model 
* standardized by convention 
* id 
* groups (or roles) built in 
* extensible to store extra data 
required 
Saturday, March 15, 14 20 
• built on-top of the data model 
• standardized by convention 
• id 
• groups (or roles) built in 
• extensible to store extra data required 
•
Security & Access Control 
* having data on client means there are a lot of security concerns 
* access control layer around who can read and write data based on 
their id and groups 
* input validation to guarantee data integrity 
* output sanitization to prevent different forms of injection attacks 
* enforced on server via schema of some form 
Saturday, March 15, 14 21 
• having data on client means there are a lot of security concerns 
• access control layer around who can read and write data based on their id and groups 
• input validation to guarantee data integrity 
• output sanitization to prevent different forms of injection attacks 
• enforced on server via schema of some form
Tooling 
* API is a black box you won’t control 
* tooling is *really* important 
* even with less surface area, there will 
still be bugs 
* so what type of tooling do we need? 
Saturday, March 15, 14 22
Data Tooling 
• Ability to view the data 
• Ability to export and import backups 
• Ability to run arbitrary queries on the data 
• Audit logs for monitoring how data changes 
• Schema visualizer 
◦ Exploring how access controls are enforced 
◦ Testing input validation and output sanitization 
• Available via Web UI and CLI 
Saturday, March 15, 14 23 
• Ability to view the data 
• Ability to export and import backups 
• Ability to run arbitrary queries on the data 
• Audit logs for monitoring how data changes 
• Schema visualizer 
• Exploring how access controls are enforced 
• Testing input validation and output sanitization 
• Available via Web UI and CLI
Organizational Tooling 
• Support for multiple collaborators 
• Support for multiple environments 
• Varying access controls based on environment 
• Ability to perform data migrations 
Saturday, March 15, 14 24 
• Support for multiple collaborators 
• Support for multiple environments 
• Varying access controls based on environment 
• Ability to perform data migrations
Hosting 
* to truly remove the operational burden, we also need to provide static application 
hosting 
* but it can't just host static html, css, js -- it needs to be living and breathing as 
well 
* schema provides access control to routes and redirect controls 
Saturday, March 15, 14 25 
• to truly remove the operational burden, we also need to provide static application hosting 
• but it can't just host static html, css, js -- it needs to be living and breathing as well 
• schema provides access control to routes and redirect controls
All together now 
Saturday, March 15, 14 26
CONNECTIVITY 
All together now 
Saturday, March 15, 14 26
CONNECTIVITY 
DATA 
MANAGEMENT 
All together now 
Saturday, March 15, 14 26
CONNECTIVITY 
DATA 
MANAGEMENT 
All together now 
USER 
MANAGEMENT 
Saturday, March 15, 14 26
CONNECTIVITY 
DATA 
MANAGEMENT 
All together now 
USER 
MANAGEMENT 
SECURITY 
Saturday, March 15, 14 26
CONNECTIVITY 
DATA 
MANAGEMENT 
USER 
MANAGEMENT 
SECURITY 
TOOLING 
All together now 
Saturday, March 15, 14 26
CONNECTIVITY 
DATA 
MANAGEMENT 
USER 
MANAGEMENT 
SECURITY 
TOOLING 
HOSTING 
All together now 
Saturday, March 15, 14 26
We’ve found some obvious advantages 
Saturday, March 15, 14 27
We’ve found some obvious advantages 
✓crowd source quality 
Saturday, March 15, 14 27
We’ve found some obvious advantages 
✓crowd source quality 
✓specialization 
Saturday, March 15, 14 27
We’ve found some obvious advantages 
✓crowd source quality 
✓specialization 
✓scale 
Saturday, March 15, 14 27
We’ve found some obvious advantages 
✓crowd source quality 
✓specialization 
✓scale 
✓reliability 
Saturday, March 15, 14 27
We’ve found some obvious advantages 
✓crowd source quality 
✓specialization 
✓scale 
✓reliability 
✓extensibility 
Saturday, March 15, 14 27
We’ve found some obvious advantages 
✓crowd source quality 
✓specialization 
✓scale 
✓reliability 
✓extensibility 
✓lower cost 
Saturday, March 15, 14 27
Saturday, March 15, 14 28
“The whole is 
greater than the 
sum of its parts.” 
– Aristotle 
Saturday, March 15, 14 28
Data Synchronization 
* evolved from BaaS movement 
* user a modifies data, automatically updates the view of user b 
* possible because of the full-duplex connection and event subscriptions 
* subscribe to “change” events in data model 
* server pushes new data and client-side api trigger event listener 
* by leveraging this pattern you now have “real-time” out of the box, you 
don’t have to manage this! It’s given to you! 
* show code example of what this looks like! 
Saturday, March 15, 14 29
Offline Support 
* now we have this mechanism for forcing our view to re-render 
* with this we can update the view of the application when the 
user reconnects (from sleep mode, or connects to wifi, etc.) 
* all the data transferred to the client from the server is cached 
so we can have read-only offline mode support out of the box 
* 
Saturday, March 15, 14 30
Shared Integrations 
Saturday, March 15, 14 31
In this utopia, how long would it 
take to build the application of your 
users dreams. 
Better question, 
how much time could you save? 
Saturday, March 15, 14 32
Baas Today 
This utopia will be built, 
one brick at a time 
Saturday, March 15, 14 33 
Talk through current solutions available
The Players 
Saturday, March 15, 14 34
In Conclusion 
• Client-side developers 
waste time and money on 
infrastructure 
• BaaS will fundamentally 
change how client-side 
applications are 
developed 
• The work is already 
under-way 
• It’s an extension of the 
platform movement 
Saturday, March 15, 14 35
Join the BaaS 
movement 
An intersection of developer 
productivity and the platformization 
revolution 
Saturday, March 15, 14 36
Q&A 
Saturday, March 15, 14 37

The Rise of BaaS A Utopia for Client-Side Developers

  • 1.
    This is acomment. The Rise of BaaS A Utopia for Client-Side Developers Saturday, March 15, 14 1
  • 2.
    State of theUnion How client-side applications are built today Saturday, March 15, 14 2
  • 3.
    CLIENT SIDE APPAPIs Web Server DATA MANAGEMENT USER MANAGEMENT BUSINESS LOGIC Hosting Tooling * your backend serves up data that your client-side code uses to render the different views * when your view needs to change the client-side code makes a request to the backend to re-render the view via xhr or websocket * talk to the backend to perform any action or to talk to third-party api's BUSINESS LOGIC Saturday, March 15, 14 3 • your backend serves up data that your client-side code uses to render the different views • when your view needs to change the client-side code makes a request to the backend to re-render the view via xhr or websocket • talk to the backend to perform any action or to talk to third-party api's
  • 4.
    How often doyou change your backend to support the needs of your client side app? Saturday, March 15, 14 4
  • 5.
    How often mustyou upgrade your back-end to extend your application? Constantly. * data and access controls (all the security) lives inside the backend so in order to extend your application you have to build out new routes Saturday, March 15, 14 5 • data and access controls (all the security) lives inside the backend so in order to extend your application you have to build out new routes
  • 6.
    The chase begins Saturday, March 15, 14 6 The communication nightmare kicks-off, the standard formation in most companies is that the client-side guys handle the users world and the back-end guys write the backend. Now, to make a change that the back-end doesn't support means that you have to coordinate with them to build out the feature. So instead of focusing on building an amazing application for your customers, you end up spending time working with the back-end team and their schedule.
  • 7.
    So what dowe settle for? APIs DATA MANAGEMENT Storage Saturday, March 15, 14 7 The communication nightmare kicks-off
  • 8.
    Every application hasunique requirements DATA MANAGEMENT USER MANAGEMENT HOSTING SECURITY Saturday, March 15, 14 8 Blog: • Comments, users and posts • Each post has a user and many comments • You want to order the posts by date and select a range of them, perhaps you also want to filter by category • Similar, for comments, you want to order by date and select a range of them • For users, you need some sort of authentication and user management system • For creating posts, you want some type of user admin role
  • 9.
    Let’s face reality,we’ve been reinventing the wheel And it’s a fracking head-ache. Saturday, March 15, 14 9
  • 10.
    This approach hasconsequences Saturday, March 15, 14 10 Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
  • 11.
    This approach hasconsequences • Tightly coupled to the server Saturday, March 15, 14 10 Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
  • 12.
    This approach hasconsequences • Tightly coupled to the server • Inflexible Saturday, March 15, 14 10 Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
  • 13.
    This approach hasconsequences • Tightly coupled to the server • Inflexible • Expensive Saturday, March 15, 14 10 Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
  • 14.
    This approach hasconsequences • Tightly coupled to the server • Inflexible • Expensive • Incomplete Saturday, March 15, 14 10 Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
  • 15.
    This approach hasconsequences • Tightly coupled to the server • Inflexible • Expensive • Incomplete • Limited extensibility Saturday, March 15, 14 10 Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
  • 16.
    This approach hasconsequences • Tightly coupled to the server • Inflexible • Expensive • Incomplete • Limited extensibility • The list as you know, does not end here Saturday, March 15, 14 10 Repeating the same pattern over and over (creating an API to wrap the data structure) and creates additional risks
  • 17.
    Imagine for amoment, the ultimate back-end. One that could fuel any & every feature. Saturday, March 15, 14 11
  • 18.
    Ian Livingstone VPEngineering, GoInstant @ianlivingstone Saturday, March 15, 14 12
  • 19.
    We’re obsessive about this problem. Saturday, March 15, 14 13 Started as co-browse, started transitioning BaaS because we found we needed every component, and none existed.
  • 20.
  • 21.
    The question thatkeeps us up at night? Saturday, March 15, 14 14
  • 22.
    The question thatkeeps us up at night? What would this ultimate backend look like? Saturday, March 15, 14 14
  • 23.
    The Vision: BaaS Saturday, March 15, 14 15
  • 24.
    The Vision: BaaS One really really awesome round wheel, we all share. Saturday, March 15, 14 15
  • 25.
    CLIENT SIDE APPAPIs Web Server DATA MANAGEMENT USER MANAGEMENT BaaS Hosting Tooling BUSINESS LOGIC Saturday, March 15, 14 16
  • 26.
    CLIENT SIDE APPAPIs Web Server Hosting Tooling DATA MANAGEMENT USER MANAGEMENT BaaS BUSINESS LOGIC Saturday, March 15, 14 16
  • 27.
    CLIENT SIDE APPAPIs Web Server Hosting Tooling DATA MANAGEMENT USER MANAGEMENT BaaS BUSINESS LOGIC Saturday, March 15, 14 16
  • 28.
    CLIENT SIDE APPAPIs Web Server Hosting Tooling DATA MANAGEMENT USER MANAGEMENT BaaS BUSINESS LOGIC Saturday, March 15, 14 16
  • 29.
    Ok that looksawesome Let’s make it a reality! Saturday, March 15, 14 17
  • 30.
    Connectivity web socketsand xhr-polling we have the technology to create "full-duplex" connections even in older browsers this gives us a mechanism for pushing data between server and client Saturday, March 15, 14 18 • web sockets and xhr-polling we have the technology to create "full-duplex" connections even in older browsers • this gives us a mechanism for pushing data between server and client
  • 31.
    Data Management *already exists just needs an API built for it on the client * support querying * transactions * all json types Saturday, March 15, 14 19 • already exists just needs an API built for it on the client • support querying • transactions • all json type
  • 32.
    User Management *built on-top of the data model * standardized by convention * id * groups (or roles) built in * extensible to store extra data required Saturday, March 15, 14 20 • built on-top of the data model • standardized by convention • id • groups (or roles) built in • extensible to store extra data required •
  • 33.
    Security & AccessControl * having data on client means there are a lot of security concerns * access control layer around who can read and write data based on their id and groups * input validation to guarantee data integrity * output sanitization to prevent different forms of injection attacks * enforced on server via schema of some form Saturday, March 15, 14 21 • having data on client means there are a lot of security concerns • access control layer around who can read and write data based on their id and groups • input validation to guarantee data integrity • output sanitization to prevent different forms of injection attacks • enforced on server via schema of some form
  • 34.
    Tooling * APIis a black box you won’t control * tooling is *really* important * even with less surface area, there will still be bugs * so what type of tooling do we need? Saturday, March 15, 14 22
  • 35.
    Data Tooling •Ability to view the data • Ability to export and import backups • Ability to run arbitrary queries on the data • Audit logs for monitoring how data changes • Schema visualizer ◦ Exploring how access controls are enforced ◦ Testing input validation and output sanitization • Available via Web UI and CLI Saturday, March 15, 14 23 • Ability to view the data • Ability to export and import backups • Ability to run arbitrary queries on the data • Audit logs for monitoring how data changes • Schema visualizer • Exploring how access controls are enforced • Testing input validation and output sanitization • Available via Web UI and CLI
  • 36.
    Organizational Tooling •Support for multiple collaborators • Support for multiple environments • Varying access controls based on environment • Ability to perform data migrations Saturday, March 15, 14 24 • Support for multiple collaborators • Support for multiple environments • Varying access controls based on environment • Ability to perform data migrations
  • 37.
    Hosting * totruly remove the operational burden, we also need to provide static application hosting * but it can't just host static html, css, js -- it needs to be living and breathing as well * schema provides access control to routes and redirect controls Saturday, March 15, 14 25 • to truly remove the operational burden, we also need to provide static application hosting • but it can't just host static html, css, js -- it needs to be living and breathing as well • schema provides access control to routes and redirect controls
  • 38.
    All together now Saturday, March 15, 14 26
  • 39.
    CONNECTIVITY All togethernow Saturday, March 15, 14 26
  • 40.
    CONNECTIVITY DATA MANAGEMENT All together now Saturday, March 15, 14 26
  • 41.
    CONNECTIVITY DATA MANAGEMENT All together now USER MANAGEMENT Saturday, March 15, 14 26
  • 42.
    CONNECTIVITY DATA MANAGEMENT All together now USER MANAGEMENT SECURITY Saturday, March 15, 14 26
  • 43.
    CONNECTIVITY DATA MANAGEMENT USER MANAGEMENT SECURITY TOOLING All together now Saturday, March 15, 14 26
  • 44.
    CONNECTIVITY DATA MANAGEMENT USER MANAGEMENT SECURITY TOOLING HOSTING All together now Saturday, March 15, 14 26
  • 45.
    We’ve found someobvious advantages Saturday, March 15, 14 27
  • 46.
    We’ve found someobvious advantages ✓crowd source quality Saturday, March 15, 14 27
  • 47.
    We’ve found someobvious advantages ✓crowd source quality ✓specialization Saturday, March 15, 14 27
  • 48.
    We’ve found someobvious advantages ✓crowd source quality ✓specialization ✓scale Saturday, March 15, 14 27
  • 49.
    We’ve found someobvious advantages ✓crowd source quality ✓specialization ✓scale ✓reliability Saturday, March 15, 14 27
  • 50.
    We’ve found someobvious advantages ✓crowd source quality ✓specialization ✓scale ✓reliability ✓extensibility Saturday, March 15, 14 27
  • 51.
    We’ve found someobvious advantages ✓crowd source quality ✓specialization ✓scale ✓reliability ✓extensibility ✓lower cost Saturday, March 15, 14 27
  • 52.
  • 53.
    “The whole is greater than the sum of its parts.” – Aristotle Saturday, March 15, 14 28
  • 54.
    Data Synchronization *evolved from BaaS movement * user a modifies data, automatically updates the view of user b * possible because of the full-duplex connection and event subscriptions * subscribe to “change” events in data model * server pushes new data and client-side api trigger event listener * by leveraging this pattern you now have “real-time” out of the box, you don’t have to manage this! It’s given to you! * show code example of what this looks like! Saturday, March 15, 14 29
  • 55.
    Offline Support *now we have this mechanism for forcing our view to re-render * with this we can update the view of the application when the user reconnects (from sleep mode, or connects to wifi, etc.) * all the data transferred to the client from the server is cached so we can have read-only offline mode support out of the box * Saturday, March 15, 14 30
  • 56.
  • 57.
    In this utopia,how long would it take to build the application of your users dreams. Better question, how much time could you save? Saturday, March 15, 14 32
  • 58.
    Baas Today Thisutopia will be built, one brick at a time Saturday, March 15, 14 33 Talk through current solutions available
  • 59.
    The Players Saturday,March 15, 14 34
  • 60.
    In Conclusion •Client-side developers waste time and money on infrastructure • BaaS will fundamentally change how client-side applications are developed • The work is already under-way • It’s an extension of the platform movement Saturday, March 15, 14 35
  • 61.
    Join the BaaS movement An intersection of developer productivity and the platformization revolution Saturday, March 15, 14 36
  • 62.