SlideShare a Scribd company logo
#MDBlocal
16 JANUARY, 2018 | HILTON
#MDBlocal
Drew DiPalma
Product Manager – Stitch
#MDBlocal
When building, you need to…
1. Safely and easily access data
2. Integrate with key services
3. Scalably serve requests
#MDBlocal
MongoDB Query Language + Native DriversIntegrated Rules
Functions 3rd Party Services
Native SDKs (JavaScript, Android, iOS)
Rest-like API
#MDBlocal
• A full backend with built-in scalability and high-availability
• Key management covered by Atlas
• Retain direct data access
• Combined with tools for building your application
• Service Integrations (including authentication)
• Hosted JavaScript functions
• Declarative access rules
• No lock-in
• Atlas available in AWS, Azure, and GCP
• Atlas in most regions, Stitch in AWS US East for Beta
Stitch + Atlas
#MDBlocal
How requests work…
1. Application request is made
1
#MDBlocal
How requests work…
1. Application request is made
2. Stitch parses and applies write rules
2
#MDBlocal
How requests work…
1. Application request is made
2. Stitch parses and applies write rules
3. Stitch orchestrates DB + Services
3
3
#MDBlocal
How requests work…
1. Application request is made
2. Stitch parses and applies write rules
3. Stitch orchestrates DB + Services
4. Stitch aggregates and applies rules
4
#MDBlocal
How requests work…
1. Application request is made
2. Stitch parses and applies write rules
3. Stitch orchestrates DB + Services
4. Stitch aggregates and applies rules
5. Client receives results 5
const stitchClient = new StitchClient('APP-ID');
const mongodbClient = stitchClient.service('mongodb', 'mongodb-atlas');
MongoDB Services Functions
Stitch Concepts
const stitchClient = new StitchClient('APP-ID');
const mongodbClient = stitchClient.service('mongodb', 'mongodb-atlas');
const db = mongoClient.db('guidebook');
const coll = db.collection('restaurants');
stitchClient.authenticate('providerType', {options})
MongoDB Services Functions
Stitch Concepts
const stitchClient = new StitchClient('APP-ID');
const mongodbClient = stitchClient.service('mongodb', 'mongodb-atlas');
const db = mongoClient.db('guidebook');
const coll = db.collection('restaurants');
stitchClient.authenticate('providerType', {options})
coll.find({'name' : text })
MongoDB Services Functions
Stitch Concepts
const stitchClient = new StitchClient('APP-ID');
const mongodbClient = stitchClient.service('mongodb', 'mongodb-atlas');
const db = mongoClient.db('guidebook');
const coll = db.collection('restaurants');
stitchClient.authenticate('providerType', {options})
coll.find({'name' : text })
.count(….)
.deleteMany(….)
.deleteOne(….)
.insertMany(….)
.insertOne(….)
.updateMany(….)
.updateOne(….)
Stitch Concepts
MongoDB Services Functions
const slackService = client.service('slack', 'slackService')
slackService.post('slackChannel', 'slack username', message)
const twilioService = client.service('twilio', 'twilioService')
twilioService.send('+120155555553', '+12018675309', message)
const s3Service = client.service('s3', 's3Service')
s3Service.signPolicy(bucket, key, acl, contentType)
MongoDB Services Pipelines
Stitch Concepts
stitchClient.executeFunction('sendWeather', 'Tel Aviv');
MongoDB Services Functions
Stitch Concepts
stitchClient.executeFunction('sendWeather', 'Tel Aviv');
MongoDB Services Functions
Stitch Concepts
exports = function(city) {
var mongodb = context.services.get("mongodb-atlas");
var UserColl = mongodb.db("StitchDemo").collection("Users");
var twilio = context.services.get("twilio");
var weather = context.services.get("weatherAPI");
var users = UserColl.find({"city": city});
var forecast = weather.get({context.values.get("weatherURL") + city});
var statuses = [];
for(var i in users){
statuses.push(twilio.send(context.values.get("twilioPhone")), users[i].Phone, forecast);
}
return status;
}
#MDBlocal
• Fine-grained data access controls
• Base access on document/field/value
• Authorize the user, not just the app
• Associate with user profile, MDB Data,
or external info
• Define with simple JSON or link to
functions
Declarative Access Controls
#MDBlocal
Atlas
Customer Account Data
{
"owner_id": … ,
"balance": … ,
"transactions": {…},
"user_profile": {….}
}Bank Teller
Analyst
Customer
Roles,Permissions,andSecurity
Application
Reporting Data Mart
User Profile:
“I need to access my account”
Role Based:
“I need to lookup transactions
without seeing personal information”
Aggregate Only:
“I need to understand the bank’s total
cash flow”
#MDBlocal
Bank Teller
Analyst
Customer
Atlas
Customer Account Data
{
"owner_id": … ,
"balance": … ,
"transactions": {…},
"user_profile": {….}
}
Stitch
user_profile
(Read Rule)
{”owner_id": ”%%user.id"}
balance/transactions
(Read Rules)
{
”%or": [
{”owner_id": ”%%user.id"},
{"%%true": { "%function":
{ "name": "CheckAuth",
"args": { "AuthType": "server",
"UserAuth": "%%user.type"}
}
]
}
{
"user_id": … ,
"balance": … ,
"transactions":
{…},
"user_profile": {….}
}
#MDBlocal
Stitch
user_profile
(Read Rule)
{”owner_id": ”%%user.id"}
balance/transactions
(Read Rules)
{
”%or": [
{”owner_id": ”%%user.id"},
{"%%true": { "%function":
{ "name": "CheckAuth",
"args": { "AuthType": "server",
"UserAuth": "%%user.type"}
}
]
}
Bank Teller
Analyst
Customer
Atlas
Customer Account Data
{
"owner_id": … ,
"balance": … ,
"transactions": {…},
"user_profile": {….}
}
{
"user_id": … ,
"balance": … ,
"transactions": {…}
}
#MDBlocal
Stitch
user_profile
(Read Rule)
{”owner_id": ”%%user.id"}
balance/transactions
(Read Rules)
{
”%or": [
{”owner_id": ”%%user.id"},
{"%%true": { "%pipeline":
{ "name": "CheckAuth",
"args": { "AuthType": "server",
"UserAuth": "%%user.type"}
}
]
}
Stitch
user_profile
(Read Rule)
{”owner_id": ”%%user.id"}
balance/transactions
(Read Rules)
{
”%or": [
{”owner_id": ”%%user.id"},
{"%%true": { "%function":
{ "name": "CheckAuth",
"args": { "AuthType": "server",
"UserAuth": "%%user.type"}
}
]
}
Bank Teller
Analyst
Customer
{Aggregated
Data}
Stitch
Function for Analysis
Atlas
Customer Account Data
{
"owner_id": … ,
"balance": … ,
"transactions": {…},
"user_profile": {….}
}
#MDBlocal
Stitch in Action
#MDBlocal
Amazon S3 MongoDB
Atlas
twilio Amazon
Rekognition
2FA Access Control with Stitch
Secure IoT Client
• Bi-directional communication
• Secure com via API key auth
• Device access to DB, functions
and Services
Complex, Scalable Backend
• Deeply integrated services
• Coordination logic via
Functions
• Security through Auth + Rules
• Elastic DB / Request
Processing
#MDBlocal
MongoDB
Atlas
twilio
Amazon
Rekognition
{key: “*”}
capture_image()
{match: Drew,
Prob: 99.0%}
{user: “Drew”,
Ph#: 555-1212}
{user: Drew,
OTP: 135}
{user: Drew,
OTP: 135}
Ph#: 555-1212
{Ph#: 555-1212,
OTP: 135}
{OTP: 135}
{OTP: 135}
Amazon S3
#MDBlocal
Stitch Demo
#MDBlocal
• $1 per GB of data transferred from Stitch to client/service
• 25 GB Free per month
• Data transfer to Atlas is free
Pricing
#MDBlocal
xx
Everywhere
Expand Regional footprint
Available on-premise
Bring any MongoDB
Realtime
Change Streams driven
Event-based pipelines
Dev Tools
Code and Rule Versioning
Debugging and Monitoring
Service Extensibility
What’s Next?
#MDBlocal
• Try out Stitch – stitch.mongodb.com
• Check out SDKs and examples
• Code at github.com/MongodbStitch
• Docs at docs.mongodb.com/stitch
• Build the Dashboard or Weather IoT apps in our Tutorials section
• Ask Questions or let us know what you’re building through Intercom
What Now?

More Related Content

PDF
MongoDB Meetup
Maxime Beugnet
 
PDF
Taking Web Apps Offline
Pedro Morais
 
PPTX
jQuery
Jeremiah Gatong
 
PDF
API-Entwicklung bei XING
Mark Schmidt
 
PPTX
Client Web
Markiyan Matsekh
 
PDF
“iOS 11 в App in the Air”, Пронин Сергей, App in the Air
AvitoTech
 
PPTX
2.java script dom
PhD Research Scholar
 
PPTX
Jquery Basics
Umeshwaran V
 
MongoDB Meetup
Maxime Beugnet
 
Taking Web Apps Offline
Pedro Morais
 
API-Entwicklung bei XING
Mark Schmidt
 
Client Web
Markiyan Matsekh
 
“iOS 11 в App in the Air”, Пронин Сергей, App in the Air
AvitoTech
 
2.java script dom
PhD Research Scholar
 
Jquery Basics
Umeshwaran V
 

What's hot (17)

PDF
jQuery's Secrets
Bastian Feder
 
PDF
HTML5 and Mobile
doodoofish
 
PPTX
2011-06-27 - AOP - .NET User Group Rhein Neckar
Johannes Hoppe
 
PDF
Seeking the truth from mobile analytics
Mouhcine El Amine
 
PDF
2012-04-12 - AOP .NET UserGroup Niederrhein
Johannes Hoppe
 
PDF
Game jump: frontend introduction #1
Sebastian Pożoga
 
PDF
How to integrate paytm payment gateway using react js in seven easy steps
Katy Slemon
 
PPTX
Présentation et bonnes pratiques du pattern MVVM - MIC Belgique
Denis Voituron
 
PPTX
Going with style: Themes and apps for Magento Go
X.commerce
 
PPT
Kick start with j query
Md. Ziaul Haq
 
PPTX
Freeing Yourself from an RDBMS Architecture
David Hoerster
 
PPTX
SFDC Data Models For Pros - Simplifying The Complexities
Baruch Oxman
 
KEY
Special Events: Beyond Custom Events
Brandon Aaron
 
PDF
MongoDB .local Chicago 2019: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
PPT
Introduction to j query
thewarlog
 
PPTX
Hdv309 - Real World Sandboxed Solutions
woutervugt
 
PDF
WooCommerce CRUD and Data Store by Akeda Bagus
WordCamp Indonesia
 
jQuery's Secrets
Bastian Feder
 
HTML5 and Mobile
doodoofish
 
2011-06-27 - AOP - .NET User Group Rhein Neckar
Johannes Hoppe
 
Seeking the truth from mobile analytics
Mouhcine El Amine
 
2012-04-12 - AOP .NET UserGroup Niederrhein
Johannes Hoppe
 
Game jump: frontend introduction #1
Sebastian Pożoga
 
How to integrate paytm payment gateway using react js in seven easy steps
Katy Slemon
 
Présentation et bonnes pratiques du pattern MVVM - MIC Belgique
Denis Voituron
 
Going with style: Themes and apps for Magento Go
X.commerce
 
Kick start with j query
Md. Ziaul Haq
 
Freeing Yourself from an RDBMS Architecture
David Hoerster
 
SFDC Data Models For Pros - Simplifying The Complexities
Baruch Oxman
 
Special Events: Beyond Custom Events
Brandon Aaron
 
MongoDB .local Chicago 2019: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
Introduction to j query
thewarlog
 
Hdv309 - Real World Sandboxed Solutions
woutervugt
 
WooCommerce CRUD and Data Store by Akeda Bagus
WordCamp Indonesia
 
Ad

Similar to SH 1 - SES 8 - Stitch_Overview_TLV.pptx (20)

PPTX
MongoDB Stich Overview
MongoDB
 
PDF
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
MongoDB
 
PPTX
Evolving your Data Access with MongoDB Stitch - Drew Di Palma
MongoDB
 
PPTX
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
MongoDB
 
PDF
MongoDB Stitch Introduction
MongoDB
 
PPTX
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB
 
PPTX
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB
 
PPTX
Introducing Stitch
MongoDB
 
PDF
Evolving your Data Access with MongoDB Stitch
MongoDB
 
PPTX
MongoDB Stitch Introduction
MongoDB
 
PPTX
Building Your First App with MongoDB Stitch
MongoDB
 
PPTX
Keynote - Speaker: Grigori Melnik
MongoDB
 
PPTX
Tutorial: Building Your First App with MongoDB Stitch
MongoDB
 
PPTX
MongoDB World 2018: Evolving your Data Access with MongoDB Stitch
MongoDB
 
PPTX
Data Analytics with MongoDB - Jane Fine
MongoDB
 
PPTX
Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch Application to the Next Level...
MongoDB
 
PDF
MongodB Internals
Norberto Leite
 
PDF
Medium TechTalk — iOS
jimmyatmedium
 
PPTX
Super spike
Michael Falanga
 
PPTX
GraphQL Summit 2019 - Configuration Driven Data as a Service Gateway with Gra...
Noriaki Tatsumi
 
MongoDB Stich Overview
MongoDB
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
MongoDB
 
Evolving your Data Access with MongoDB Stitch - Drew Di Palma
MongoDB
 
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
MongoDB
 
MongoDB Stitch Introduction
MongoDB
 
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB
 
Introducing Stitch
MongoDB
 
Evolving your Data Access with MongoDB Stitch
MongoDB
 
MongoDB Stitch Introduction
MongoDB
 
Building Your First App with MongoDB Stitch
MongoDB
 
Keynote - Speaker: Grigori Melnik
MongoDB
 
Tutorial: Building Your First App with MongoDB Stitch
MongoDB
 
MongoDB World 2018: Evolving your Data Access with MongoDB Stitch
MongoDB
 
Data Analytics with MongoDB - Jane Fine
MongoDB
 
Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch Application to the Next Level...
MongoDB
 
MongodB Internals
Norberto Leite
 
Medium TechTalk — iOS
jimmyatmedium
 
Super spike
Michael Falanga
 
GraphQL Summit 2019 - Configuration Driven Data as a Service Gateway with Gra...
Noriaki Tatsumi
 
Ad

More from MongoDB (20)

PDF
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB
 
PDF
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
PDF
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB
 
PDF
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB
 
PDF
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB
 
PDF
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB
 
PDF
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
PDF
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB
 
PDF
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB
 
PDF
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB
 
PDF
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB
 
PDF
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB
 
PDF
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB
 

SH 1 - SES 8 - Stitch_Overview_TLV.pptx

  • 3. #MDBlocal When building, you need to… 1. Safely and easily access data 2. Integrate with key services 3. Scalably serve requests
  • 4. #MDBlocal MongoDB Query Language + Native DriversIntegrated Rules Functions 3rd Party Services Native SDKs (JavaScript, Android, iOS) Rest-like API
  • 5. #MDBlocal • A full backend with built-in scalability and high-availability • Key management covered by Atlas • Retain direct data access • Combined with tools for building your application • Service Integrations (including authentication) • Hosted JavaScript functions • Declarative access rules • No lock-in • Atlas available in AWS, Azure, and GCP • Atlas in most regions, Stitch in AWS US East for Beta Stitch + Atlas
  • 6. #MDBlocal How requests work… 1. Application request is made 1
  • 7. #MDBlocal How requests work… 1. Application request is made 2. Stitch parses and applies write rules 2
  • 8. #MDBlocal How requests work… 1. Application request is made 2. Stitch parses and applies write rules 3. Stitch orchestrates DB + Services 3 3
  • 9. #MDBlocal How requests work… 1. Application request is made 2. Stitch parses and applies write rules 3. Stitch orchestrates DB + Services 4. Stitch aggregates and applies rules 4
  • 10. #MDBlocal How requests work… 1. Application request is made 2. Stitch parses and applies write rules 3. Stitch orchestrates DB + Services 4. Stitch aggregates and applies rules 5. Client receives results 5
  • 11. const stitchClient = new StitchClient('APP-ID'); const mongodbClient = stitchClient.service('mongodb', 'mongodb-atlas'); MongoDB Services Functions Stitch Concepts
  • 12. const stitchClient = new StitchClient('APP-ID'); const mongodbClient = stitchClient.service('mongodb', 'mongodb-atlas'); const db = mongoClient.db('guidebook'); const coll = db.collection('restaurants'); stitchClient.authenticate('providerType', {options}) MongoDB Services Functions Stitch Concepts
  • 13. const stitchClient = new StitchClient('APP-ID'); const mongodbClient = stitchClient.service('mongodb', 'mongodb-atlas'); const db = mongoClient.db('guidebook'); const coll = db.collection('restaurants'); stitchClient.authenticate('providerType', {options}) coll.find({'name' : text }) MongoDB Services Functions Stitch Concepts
  • 14. const stitchClient = new StitchClient('APP-ID'); const mongodbClient = stitchClient.service('mongodb', 'mongodb-atlas'); const db = mongoClient.db('guidebook'); const coll = db.collection('restaurants'); stitchClient.authenticate('providerType', {options}) coll.find({'name' : text }) .count(….) .deleteMany(….) .deleteOne(….) .insertMany(….) .insertOne(….) .updateMany(….) .updateOne(….) Stitch Concepts MongoDB Services Functions
  • 15. const slackService = client.service('slack', 'slackService') slackService.post('slackChannel', 'slack username', message) const twilioService = client.service('twilio', 'twilioService') twilioService.send('+120155555553', '+12018675309', message) const s3Service = client.service('s3', 's3Service') s3Service.signPolicy(bucket, key, acl, contentType) MongoDB Services Pipelines Stitch Concepts
  • 17. stitchClient.executeFunction('sendWeather', 'Tel Aviv'); MongoDB Services Functions Stitch Concepts exports = function(city) { var mongodb = context.services.get("mongodb-atlas"); var UserColl = mongodb.db("StitchDemo").collection("Users"); var twilio = context.services.get("twilio"); var weather = context.services.get("weatherAPI"); var users = UserColl.find({"city": city}); var forecast = weather.get({context.values.get("weatherURL") + city}); var statuses = []; for(var i in users){ statuses.push(twilio.send(context.values.get("twilioPhone")), users[i].Phone, forecast); } return status; }
  • 18. #MDBlocal • Fine-grained data access controls • Base access on document/field/value • Authorize the user, not just the app • Associate with user profile, MDB Data, or external info • Define with simple JSON or link to functions Declarative Access Controls
  • 19. #MDBlocal Atlas Customer Account Data { "owner_id": … , "balance": … , "transactions": {…}, "user_profile": {….} }Bank Teller Analyst Customer Roles,Permissions,andSecurity Application Reporting Data Mart User Profile: “I need to access my account” Role Based: “I need to lookup transactions without seeing personal information” Aggregate Only: “I need to understand the bank’s total cash flow”
  • 20. #MDBlocal Bank Teller Analyst Customer Atlas Customer Account Data { "owner_id": … , "balance": … , "transactions": {…}, "user_profile": {….} } Stitch user_profile (Read Rule) {”owner_id": ”%%user.id"} balance/transactions (Read Rules) { ”%or": [ {”owner_id": ”%%user.id"}, {"%%true": { "%function": { "name": "CheckAuth", "args": { "AuthType": "server", "UserAuth": "%%user.type"} } ] } { "user_id": … , "balance": … , "transactions": {…}, "user_profile": {….} }
  • 21. #MDBlocal Stitch user_profile (Read Rule) {”owner_id": ”%%user.id"} balance/transactions (Read Rules) { ”%or": [ {”owner_id": ”%%user.id"}, {"%%true": { "%function": { "name": "CheckAuth", "args": { "AuthType": "server", "UserAuth": "%%user.type"} } ] } Bank Teller Analyst Customer Atlas Customer Account Data { "owner_id": … , "balance": … , "transactions": {…}, "user_profile": {….} } { "user_id": … , "balance": … , "transactions": {…} }
  • 22. #MDBlocal Stitch user_profile (Read Rule) {”owner_id": ”%%user.id"} balance/transactions (Read Rules) { ”%or": [ {”owner_id": ”%%user.id"}, {"%%true": { "%pipeline": { "name": "CheckAuth", "args": { "AuthType": "server", "UserAuth": "%%user.type"} } ] } Stitch user_profile (Read Rule) {”owner_id": ”%%user.id"} balance/transactions (Read Rules) { ”%or": [ {”owner_id": ”%%user.id"}, {"%%true": { "%function": { "name": "CheckAuth", "args": { "AuthType": "server", "UserAuth": "%%user.type"} } ] } Bank Teller Analyst Customer {Aggregated Data} Stitch Function for Analysis Atlas Customer Account Data { "owner_id": … , "balance": … , "transactions": {…}, "user_profile": {….} }
  • 24. #MDBlocal Amazon S3 MongoDB Atlas twilio Amazon Rekognition 2FA Access Control with Stitch Secure IoT Client • Bi-directional communication • Secure com via API key auth • Device access to DB, functions and Services Complex, Scalable Backend • Deeply integrated services • Coordination logic via Functions • Security through Auth + Rules • Elastic DB / Request Processing
  • 25. #MDBlocal MongoDB Atlas twilio Amazon Rekognition {key: “*”} capture_image() {match: Drew, Prob: 99.0%} {user: “Drew”, Ph#: 555-1212} {user: Drew, OTP: 135} {user: Drew, OTP: 135} Ph#: 555-1212 {Ph#: 555-1212, OTP: 135} {OTP: 135} {OTP: 135} Amazon S3
  • 27. #MDBlocal • $1 per GB of data transferred from Stitch to client/service • 25 GB Free per month • Data transfer to Atlas is free Pricing
  • 28. #MDBlocal xx Everywhere Expand Regional footprint Available on-premise Bring any MongoDB Realtime Change Streams driven Event-based pipelines Dev Tools Code and Rule Versioning Debugging and Monitoring Service Extensibility What’s Next?
  • 29. #MDBlocal • Try out Stitch – stitch.mongodb.com • Check out SDKs and examples • Code at github.com/MongodbStitch • Docs at docs.mongodb.com/stitch • Build the Dashboard or Weather IoT apps in our Tutorials section • Ask Questions or let us know what you’re building through Intercom What Now?