SlideShare une entreprise Scribd logo
1  sur  63
Ch-ch-ch-ch-changes
Taking Your Stitch Application to the Next Level
with Stitch Triggers
Industry Trends – Leading to Stitch
1370 1990
Industry Trends – Leading to Stitch
19901370 1997
Industry Trends – Leading to Stitch
19971990 2001
Industry Trends – Leading to Stitch
20011997 2007
Industry Trends – Leading to Stitch
20072001 2014
Industry Trends – Leading to Stitch
20142007 2018
Industry Trends – Leading to Stitch
20182014
Intelligent Operational Data Platform
Best way to work
with data
Intelligently put data
where you want it
Freedom to run
anywhere
● MongoDB Stitch
● MongoDB Server 4.0
● MongoDB Compass
● MongoDB Charts
● MongoDB Mobile
● MongoDB Server 4.0
● MongoDB Atlas
● Ops Manager 4.0
● Free Cloud Monitoring
The evolution of MongoDB
3.0 3.2
Document Validation
$lookup
Fast Failover
Simpler Scalability
Aggregation ++
Encryption At Rest
In-Memory Storage Engine
BI Connector
MongoDB Compass
APM Integration
Profiler Visualization
Auto Index Builds
Backups to File System
Doc-Level
Concurrency
Compression
Storage Engine API
≤50 replicas
Auditing ++
Ops Manager
Linearizable reads
Intra-cluster compression
Views
Log Redaction
Linearizable Reads
Graph Processing
Decimal
Collations
Faceted Navigation
Zones ++
Aggregation ++
Auto-balancing ++
ARM, Power, zSeries
BI & Spark Connectors ++
Compass ++
Hardware Monitoring
Server Pool
LDAP Authorization
Encrypted Backups
Cloud Foundry Integration
3.4 3.6
Change Streams
Retryable Writes
Expressive Array Updates
Query Expressivity
Causal Consistency
Consistent Sharded Sec. Reads
Compass Community
Ops Manager ++
Query Advisor
Schema Validation
End to End Compression
IP Whitelisting
Default Bind to Localhost
Sessions
WiredTiger 1m+ Collections
MongoDB BI Connector ++
Expressive $lookUp
R Driver
Atlas Cross Region Replication
Atlas Auto Storage Scaling
4.0
Multi-Document ACID Transactions
Atlas Global Sharding
Atlas HIPAA
Atlas LDAP
Atlas Audit
Atlas Encrypted Storage Engine
Atlas AWS Backup Snapshots
Snapshot Reads
Agg Pipeline Type Conversions
40% Faster Shard Migrations
Non-Blocking Secondary Reads
SHA-2
TLS 1.1+
Compass Agg Pipeline Builder
Compass Export to Code
Charts Beta
Monitoring Cloud Service
Ops Manager K8s & OpenShift
MongoDB Stitch GA
MongoDB Mobile (Private Beta)
“We set out to build a database that we would want to use, so that
whenever developers wanted to build an application, they could
focus on the application, not on working around the database.”
- Eliot Horowitz
Stitch Functions
Stitch is a collection of servers that
process application requests
Requests:
• Single actions for Database or Services
• Or executing a Stitch Function
• Integrated with Stitch’s rules
Functions:
• Scalable, hosted JavaScript (ES6) Functions
• Integrated with application context
• User, Request, Services, Values, etc.
MongoDB Query Language + Native DriversIntegrated Rules
Functions3rd Party Services
Native SDKs (JavaScript, Android, iOS)
Rest API
When do we want functions to execute?
AUTHENTICATION
WEBHOOK/
INTEGRATION
DATABASE EVENTS
3 Contexts Where Functions
Execute
1
2
3
When do we want functions to execute?
client.executeFunction(…)client.loginWithCredential(…)
AUTHENTICATION
WEBHOOK/
INTEGRATION
DATABASE EVENTS
1
2
3
When do we want functions to execute?
Incoming Webhooks
(HTTP, Twilio, Github)
AUTHENTICATION
WEBHOOK/
INTEGRATION
DATABASE EVENTS
1
2
3
When do we want functions to execute?
Database Events
Collection.insertOne(…)
AUTHENTICATION
WEBHOOK/
INTEGRATION
DATABASE EVENTS
1
2
3
Responding to Database Changes in the Past
Responding to Database Changes in the Past
Before Change Streams:
{
"ts" : Timestamp(1526593721, 1),
"t" : NumberLong(1),
"h" : NumberLong("-2175450131096164196"),
"v" : 2,
"op" : "n",
"ns" : "",
"wall" : ISODate("2018-05-17T21:48:41.962Z"),
"o" : {
"msg" : "periodic noop"
}
}
{
"ts" : Timestamp(1526593731, 1),
"t" : NumberLong(1),
"h" : NumberLong("4757850941625744949"),
"v" : 2,
"op" : "n",
"ns" : "",
"wall" : ISODate("2018-05-17T21:48:51.962Z"),
"o" : {
"msg" : "periodic noop"
}
}
OPLOGOPLOG OPLOG
Application
W
db.users.insert({,,,})
PRIMARY SECONDARY SECONDARY
db.users.insert({,,,})
A
C
K
db.users.insert({,,,})
W
db.users.update({,,,}) db.users.update({,,,})
A
C
K
db.users.update({,,,})
What’s an Oplog?
OUT OF DATE OUT OF DATE
OPLOGOPLOG OPLOG
Application
W
db.users.insert({,,,})
PRIMARY SECONDARY SECONDARY
db.users.insert({,,,})
A
C
K
db.users.insert({,,,})
W
db.users.update({,,,}) db.users.update({,,,})
A
C
K
db.users.update({,,,})
Monitor
R R
If (insert) {
aws.s3.insertObject(…);
}
Before ChangeStreams and Triggers
TAILING THE OPLOG
Setting up a Change Stream (NodeJS)
Triggers in Stitch
Traditional Database Triggers
• Triggers are:
• Code executed when a certain database
event occurs
• Executed within the Database
• Trigger uses include:
• Enforcing Referential/Business logic
• Auditing and Logging
• Security/Validation Logic
• Maintaining Replication
Stitch Coordinates Change Streams
1. Sets-up Change Stream
2. Maintains Streams over time
3. Passes Change Events to
Coordinator
Stitch Infrastructure
Stitch Connection
Event Coordinator
CS 1 CS 3
CS 2
Adding Triggers to Stitch
Reduce Time to Market
Functions as a Service: No waiting on
infrastructure
Reduce boilerplate: Save code
Cross-Platform: Develop once
Existing Apps Untouched: No reverse-
engineering
Reduce Ops costs
Serverless: Zero wasted capacity
Payment: No up-front cost
Capacity on Demand: No need to over-
provision in advance
Secure by Default: Less operational effort
Reduce Dev Effort
Backend Integration Built in: No generic
backend code
HA & Scalability Built in: Hard and time
consuming to build Orchestrate Services:
Reuse what's out there
Faster Cheaper Easier
Event Driven Life-cycle
Pending SucceededOwned
Failed Dead
Event is …
Waiting for a ConsumerAttempting ExecutionCompletedAwaiting RetriesRe-Attempting ExecutionUnable to Execute
(Trigger Disabled)
Introducing: Stitch Triggers
Add Trigger
Add Trigger
Event-driven Functions for Communication
FUNCTION
Database
Update
Text/E-mail
EVENT
Push Notification
Event-driven Functions for Data Propagation
FUNCTION
EVENT
Database
Operation
Stitch Ensures Correct Execution
Database Events are:
• Generated by matching
operations ({match: { …}})
• Fully Ordered
1. Event is Generated
2. Event added to Job Queue
3. Event waits for blocking Events
to complete
4. Event waits for consumer to
attempt execution
The MongoDB Swagstore
What is the Swagstore
Standard Retail Store:
• Browse Items
• Add items to cart
• Checkout
• Request Notification for Restock
Additional Features:
• Update/text on item re-stock
• Shipping text/e-mail notification
Stitch Features
• Functions
• Triggers
• 3rd Party Services
Inventory Updates
FUNCTION
EVENT
{
ID: XXXXX
SIZE: M
COUNT: 100
}
{
ID: XXXXX
DESC: “Men’s T-shirt”
SM_COUNT: 12
MED_COUNT: 100
LG_COUNT: 23
}
Shipping Updates
FUNCTION
Shipping Status
Updated
Your package
has shipped
EVENT
Swagstore in Action
AUTHENTICATION
BROWSE
SELECT ITEM
IN
STOCK?
CART
CHECKOUT
UPDATE NOTIFY
Initialization
• Before we leverage any features of Stitch,
we must initialize our API with the Stitch
App Key
import React from 'react'
import ReactDOM from 'react-dom'
import './index.css'
import App from './App'
import registerServiceWorker from './registerServiceWorker'
import { BrowserRouter } from 'react-router-dom'
import { StitchClientFactory } from 'mongodb-stitch'
const appId = 'ecommercechatbot-glwkl'
let stitchClientPromise = StitchClientFactory.create(appId)
stitchClientPromise.then(stitchClient => {
let db = stitchClient.service('mongodb', 'mongodb-
atlas').db('swagstore')
let props = { stitchClient, db }
ReactDOM.render(
<BrowserRouter>
<App {...props} />
</BrowserRouter>,
document.getElementById('root')
)
registerServiceWorker()
})
AUTHENTICATION
BROWSE
SELECT ITEM
IN
STOCK?
CART
CHECKOUT
UPDATE NOTIFY
Authentication
• Leverage integration with Google Sign-in
to authenticate the user and set the user’s
profile context.
AUTHENTICATION
BROWSE
SELECT ITEM
IN
STOCK?
CART
CHECKOUT
UPDATE NOTIFY
Browse
• Leverage SDK db.collection() to access
SWAG-STORE database and products
collection
import React, { Component } from 'react'
import { ProductDeck } from '../components/Products'
class ProductsPage extends Component {
constructor(props) {
super(props)
this.state = {
products: []
}
}
getProducts() {
this.props.db
.collection('products’)
.find({ category: this.props.match.params.category })
.execute()
.then(products => {
this.setState({ products })
})
.catch(err => {
console.log(err)
})
}
componentDidMount() {
this.getProducts()
}
componentDidUpdate(prevProps, prevState, snapshot) {
if (this.props.match.params.category !== prevProps.match.params.category) {
AUTHENTICATION
BROWSE
SELECT ITEM
IN
STOCK?
CART
CHECKOUT
UPDATE NOTIFY
Click on Product
• Reveals Product Page
getProduct() {
this.props.db
.collection('products’)
.findOne({ id: this.props.match.params.id })
.then(product => {
this.setState({
product,
notifying:this.props.notify
.includes(this.props.match.params.id)
})
this.props.handleBrowsedProduct(product)
})
.catch(err => {
console.log(err)
})
}
AUTHENTICATION
BROWSE
SELECT ITEM
IN
STOCK?
CART
CHECKOUT
UPDATE NOTIFY
UPDATE NOTIFY
IN
STOCK?
AUTHENTICATION
BROWSE
SELECT ITEM
CART
CHECKOUT
UPDATE NOTIFY
IN
STOCK?
AUTHENTICATION
BROWSE
SELECT ITEM
CART
CHECKOUT
UPDATE NOTIFY
IN
STOCK?
AUTHENTICATION
BROWSE
SELECT ITEM
CART
CHECKOUT
UPDATE NOTIFY
IN
STOCK?
AUTHENTICATION
BROWSE
SELECT ITEM
CART
CHECKOUT
AUTHENTICATION
BROWSE
SELECT ITEM
IN
STOCK?
CART
CHECKOUT
UPDATE NOTIFY
AUTHENTICATION
BROWSE
SELECT ITEM
IN
STOCK?
CART
CHECKOUT
UPDATE NOTIFY
Event Subscriptions
in App Structure
• Event Subscriptions are a
top-level Stitch asset
• Can be constructed in the UI
or with the CLI
Event Subscriptions
in App Structure
• Event Subscriptions are a
top-level Stitch asset
• Can be constructed in the UI
or with the CLI
Change Streams Future Work
• Non-Atlas/Multiple Application per Application
• Events that span Multiple MongoDB Instances
• Timed Events
• Execute on a certain Interval
• Execute at a given time
• For now, can use Webhooks with CRON service
What do change events look like?
Event Subscription (Trigger) Event Source (Actual event document)
Example Trigger
Name of the Trigger
Type: DATABASE, AUTHENTICATION
Type of Operation to Trigger
Database
Collection
Match Criteria
Full Document or Partial
Function to be called on Trigger
Example Trigger Event Document
Type of Database Operation
Full Document impacted by operation
Database
Collection

Contenu connexe

Tendances

Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHubEffective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHubAmazon Web Services
 
AppSync.org: open-source patterns and code for data synchronization in mobile...
AppSync.org: open-source patterns and code for data synchronization in mobile...AppSync.org: open-source patterns and code for data synchronization in mobile...
AppSync.org: open-source patterns and code for data synchronization in mobile...Niko Nelissen
 
2015-12-02 - WebCamp - Microsoft Azure Logic Apps
2015-12-02 - WebCamp - Microsoft Azure Logic Apps2015-12-02 - WebCamp - Microsoft Azure Logic Apps
2015-12-02 - WebCamp - Microsoft Azure Logic AppsSandro Pereira
 
Securing Serverless Architectures - AWS Serverless Web Day
Securing Serverless Architectures - AWS Serverless Web DaySecuring Serverless Architectures - AWS Serverless Web Day
Securing Serverless Architectures - AWS Serverless Web DayAWS Germany
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBizTalk360
 
IoT Hack Day: AWS Pop-up Loft Hack Series Sponsored by Intel
IoT Hack Day: AWS Pop-up Loft Hack Series Sponsored by IntelIoT Hack Day: AWS Pop-up Loft Hack Series Sponsored by Intel
IoT Hack Day: AWS Pop-up Loft Hack Series Sponsored by IntelAmazon Web Services
 
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoTAmazon Web Services
 
API Versioning in the Cloud
API Versioning in the CloudAPI Versioning in the Cloud
API Versioning in the CloudCloud Elements
 
Connect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppConnect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppFrançois Boucher
 
Leveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutionsLeveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutionsDragan Panjkov
 
Data Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application DesignData Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application DesignEric Maxwell
 
Mobile Applications and The Internet of Things: AWS Lambda & AWS Cognito – Ad...
Mobile Applications and The Internet of Things: AWS Lambda & AWS Cognito – Ad...Mobile Applications and The Internet of Things: AWS Lambda & AWS Cognito – Ad...
Mobile Applications and The Internet of Things: AWS Lambda & AWS Cognito – Ad...Amazon Web Services
 
2016 - Serverless Microservices on AWS with API Gateway and Lambda
2016 - Serverless Microservices on AWS with API Gateway and Lambda2016 - Serverless Microservices on AWS with API Gateway and Lambda
2016 - Serverless Microservices on AWS with API Gateway and Lambdadevopsdaysaustin
 
Go Serverless with Azure
Go Serverless with AzureGo Serverless with Azure
Go Serverless with AzureSergey Seletsky
 
Scaling Security Operations and Automating Governance: Which AWS Services Sho...
Scaling Security Operations and Automating Governance: Which AWS Services Sho...Scaling Security Operations and Automating Governance: Which AWS Services Sho...
Scaling Security Operations and Automating Governance: Which AWS Services Sho...Amazon Web Services
 
Cooking your Ravioli "al dente" with Hexagonal Architecture
Cooking your Ravioli "al dente" with Hexagonal ArchitectureCooking your Ravioli "al dente" with Hexagonal Architecture
Cooking your Ravioli "al dente" with Hexagonal ArchitectureJeroen Rosenberg
 
Easily Govern and Audit your AWS Resources
Easily Govern and Audit your AWS ResourcesEasily Govern and Audit your AWS Resources
Easily Govern and Audit your AWS ResourcesAmazon Web Services
 
Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Amazon Web Services
 
MongoDB World 2019: Fast Machine Learning Development with MongoDB
MongoDB World 2019: Fast Machine Learning Development with MongoDBMongoDB World 2019: Fast Machine Learning Development with MongoDB
MongoDB World 2019: Fast Machine Learning Development with MongoDBMongoDB
 

Tendances (20)

Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHubEffective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
 
AppSync.org: open-source patterns and code for data synchronization in mobile...
AppSync.org: open-source patterns and code for data synchronization in mobile...AppSync.org: open-source patterns and code for data synchronization in mobile...
AppSync.org: open-source patterns and code for data synchronization in mobile...
 
2015-12-02 - WebCamp - Microsoft Azure Logic Apps
2015-12-02 - WebCamp - Microsoft Azure Logic Apps2015-12-02 - WebCamp - Microsoft Azure Logic Apps
2015-12-02 - WebCamp - Microsoft Azure Logic Apps
 
Securing Serverless Architectures - AWS Serverless Web Day
Securing Serverless Architectures - AWS Serverless Web DaySecuring Serverless Architectures - AWS Serverless Web Day
Securing Serverless Architectures - AWS Serverless Web Day
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic Apps
 
IoT Hack Day: AWS Pop-up Loft Hack Series Sponsored by Intel
IoT Hack Day: AWS Pop-up Loft Hack Series Sponsored by IntelIoT Hack Day: AWS Pop-up Loft Hack Series Sponsored by Intel
IoT Hack Day: AWS Pop-up Loft Hack Series Sponsored by Intel
 
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
(MBL305) You Have Data from the Devices, Now What?: Getting the Value of the IoT
 
API Versioning in the Cloud
API Versioning in the CloudAPI Versioning in the Cloud
API Versioning in the Cloud
 
Connect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppConnect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic App
 
Leveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutionsLeveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutions
 
Data Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application DesignData Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application Design
 
Azure Logic Apps
Azure Logic AppsAzure Logic Apps
Azure Logic Apps
 
Mobile Applications and The Internet of Things: AWS Lambda & AWS Cognito – Ad...
Mobile Applications and The Internet of Things: AWS Lambda & AWS Cognito – Ad...Mobile Applications and The Internet of Things: AWS Lambda & AWS Cognito – Ad...
Mobile Applications and The Internet of Things: AWS Lambda & AWS Cognito – Ad...
 
2016 - Serverless Microservices on AWS with API Gateway and Lambda
2016 - Serverless Microservices on AWS with API Gateway and Lambda2016 - Serverless Microservices on AWS with API Gateway and Lambda
2016 - Serverless Microservices on AWS with API Gateway and Lambda
 
Go Serverless with Azure
Go Serverless with AzureGo Serverless with Azure
Go Serverless with Azure
 
Scaling Security Operations and Automating Governance: Which AWS Services Sho...
Scaling Security Operations and Automating Governance: Which AWS Services Sho...Scaling Security Operations and Automating Governance: Which AWS Services Sho...
Scaling Security Operations and Automating Governance: Which AWS Services Sho...
 
Cooking your Ravioli "al dente" with Hexagonal Architecture
Cooking your Ravioli "al dente" with Hexagonal ArchitectureCooking your Ravioli "al dente" with Hexagonal Architecture
Cooking your Ravioli "al dente" with Hexagonal Architecture
 
Easily Govern and Audit your AWS Resources
Easily Govern and Audit your AWS ResourcesEasily Govern and Audit your AWS Resources
Easily Govern and Audit your AWS Resources
 
Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games
 
MongoDB World 2019: Fast Machine Learning Development with MongoDB
MongoDB World 2019: Fast Machine Learning Development with MongoDBMongoDB World 2019: Fast Machine Learning Development with MongoDB
MongoDB World 2019: Fast Machine Learning Development with MongoDB
 

Similaire à Taking Your Stitch Application to the Next Level with Stitch Triggers

MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
MongoDB.local Austin 2018:  Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...MongoDB.local Austin 2018:  Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...MongoDB
 
Faites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchFaites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchMongoDB
 
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS SummitDiscover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS SummitAmazon Web Services
 
Building Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchBuilding Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchMongoDB
 
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Takumi Sakamoto
 
Tutorial: Building Your First App with MongoDB Stitch
Tutorial: Building Your First App with MongoDB StitchTutorial: Building Your First App with MongoDB Stitch
Tutorial: Building Your First App with MongoDB StitchMongoDB
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtrutyRon Favali
 
Public v1 real world example of azure functions serverless conf london 2016
Public v1 real world example of azure functions serverless conf london 2016 Public v1 real world example of azure functions serverless conf london 2016
Public v1 real world example of azure functions serverless conf london 2016 Yochay Kiriaty
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixIBM
 
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...CodeMill digital skills
 
Salesforce com-architecture
Salesforce com-architectureSalesforce com-architecture
Salesforce com-architecturedrewz lin
 
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
[MongoDB.local Bengaluru 2018] Introduction to MongoDB StitchMongoDB
 
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...Amazon Web Services
 
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB
 
Code first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with AzureCode first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with AzureJeremy Likness
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB
 
Building an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsBuilding an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsDigitalOcean
 

Similaire à Taking Your Stitch Application to the Next Level with Stitch Triggers (20)

MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
MongoDB.local Austin 2018:  Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...MongoDB.local Austin 2018:  Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
 
Faites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchFaites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB Stitch
 
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS SummitDiscover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
 
Building Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchBuilding Your First App with MongoDB Stitch
Building Your First App with MongoDB Stitch
 
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?
 
Tutorial: Building Your First App with MongoDB Stitch
Tutorial: Building Your First App with MongoDB StitchTutorial: Building Your First App with MongoDB Stitch
Tutorial: Building Your First App with MongoDB Stitch
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDB
 
ServerLess by usama Azure fuctions.pptx
ServerLess by usama Azure fuctions.pptxServerLess by usama Azure fuctions.pptx
ServerLess by usama Azure fuctions.pptx
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtruty
 
Public v1 real world example of azure functions serverless conf london 2016
Public v1 real world example of azure functions serverless conf london 2016 Public v1 real world example of azure functions serverless conf london 2016
Public v1 real world example of azure functions serverless conf london 2016
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
 
Salesforce com-architecture
Salesforce com-architectureSalesforce com-architecture
Salesforce com-architecture
 
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
 
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
Expedite the development lifecycle with MongoDB and serverless - DEM17-S - Ne...
 
vinay-mittal-new
vinay-mittal-newvinay-mittal-new
vinay-mittal-new
 
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
 
Code first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with AzureCode first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with Azure
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
 
Building an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsBuilding an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult Steps
 

Plus de MongoDB

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

Plus de MongoDB (20)

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

Dernier

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Dernier (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

Taking Your Stitch Application to the Next Level with Stitch Triggers

  • 1. Ch-ch-ch-ch-changes Taking Your Stitch Application to the Next Level with Stitch Triggers
  • 2. Industry Trends – Leading to Stitch 1370 1990
  • 3. Industry Trends – Leading to Stitch 19901370 1997
  • 4. Industry Trends – Leading to Stitch 19971990 2001
  • 5. Industry Trends – Leading to Stitch 20011997 2007
  • 6. Industry Trends – Leading to Stitch 20072001 2014
  • 7. Industry Trends – Leading to Stitch 20142007 2018
  • 8. Industry Trends – Leading to Stitch 20182014
  • 9. Intelligent Operational Data Platform Best way to work with data Intelligently put data where you want it Freedom to run anywhere ● MongoDB Stitch ● MongoDB Server 4.0 ● MongoDB Compass ● MongoDB Charts ● MongoDB Mobile ● MongoDB Server 4.0 ● MongoDB Atlas ● Ops Manager 4.0 ● Free Cloud Monitoring
  • 10. The evolution of MongoDB 3.0 3.2 Document Validation $lookup Fast Failover Simpler Scalability Aggregation ++ Encryption At Rest In-Memory Storage Engine BI Connector MongoDB Compass APM Integration Profiler Visualization Auto Index Builds Backups to File System Doc-Level Concurrency Compression Storage Engine API ≤50 replicas Auditing ++ Ops Manager Linearizable reads Intra-cluster compression Views Log Redaction Linearizable Reads Graph Processing Decimal Collations Faceted Navigation Zones ++ Aggregation ++ Auto-balancing ++ ARM, Power, zSeries BI & Spark Connectors ++ Compass ++ Hardware Monitoring Server Pool LDAP Authorization Encrypted Backups Cloud Foundry Integration 3.4 3.6 Change Streams Retryable Writes Expressive Array Updates Query Expressivity Causal Consistency Consistent Sharded Sec. Reads Compass Community Ops Manager ++ Query Advisor Schema Validation End to End Compression IP Whitelisting Default Bind to Localhost Sessions WiredTiger 1m+ Collections MongoDB BI Connector ++ Expressive $lookUp R Driver Atlas Cross Region Replication Atlas Auto Storage Scaling 4.0 Multi-Document ACID Transactions Atlas Global Sharding Atlas HIPAA Atlas LDAP Atlas Audit Atlas Encrypted Storage Engine Atlas AWS Backup Snapshots Snapshot Reads Agg Pipeline Type Conversions 40% Faster Shard Migrations Non-Blocking Secondary Reads SHA-2 TLS 1.1+ Compass Agg Pipeline Builder Compass Export to Code Charts Beta Monitoring Cloud Service Ops Manager K8s & OpenShift MongoDB Stitch GA MongoDB Mobile (Private Beta)
  • 11. “We set out to build a database that we would want to use, so that whenever developers wanted to build an application, they could focus on the application, not on working around the database.” - Eliot Horowitz
  • 12. Stitch Functions Stitch is a collection of servers that process application requests Requests: • Single actions for Database or Services • Or executing a Stitch Function • Integrated with Stitch’s rules Functions: • Scalable, hosted JavaScript (ES6) Functions • Integrated with application context • User, Request, Services, Values, etc.
  • 13. MongoDB Query Language + Native DriversIntegrated Rules Functions3rd Party Services Native SDKs (JavaScript, Android, iOS) Rest API
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. When do we want functions to execute? AUTHENTICATION WEBHOOK/ INTEGRATION DATABASE EVENTS 3 Contexts Where Functions Execute 1 2 3
  • 20. When do we want functions to execute? client.executeFunction(…)client.loginWithCredential(…) AUTHENTICATION WEBHOOK/ INTEGRATION DATABASE EVENTS 1 2 3
  • 21. When do we want functions to execute? Incoming Webhooks (HTTP, Twilio, Github) AUTHENTICATION WEBHOOK/ INTEGRATION DATABASE EVENTS 1 2 3
  • 22. When do we want functions to execute? Database Events Collection.insertOne(…) AUTHENTICATION WEBHOOK/ INTEGRATION DATABASE EVENTS 1 2 3
  • 23. Responding to Database Changes in the Past
  • 24. Responding to Database Changes in the Past Before Change Streams: { "ts" : Timestamp(1526593721, 1), "t" : NumberLong(1), "h" : NumberLong("-2175450131096164196"), "v" : 2, "op" : "n", "ns" : "", "wall" : ISODate("2018-05-17T21:48:41.962Z"), "o" : { "msg" : "periodic noop" } } { "ts" : Timestamp(1526593731, 1), "t" : NumberLong(1), "h" : NumberLong("4757850941625744949"), "v" : 2, "op" : "n", "ns" : "", "wall" : ISODate("2018-05-17T21:48:51.962Z"), "o" : { "msg" : "periodic noop" } }
  • 25. OPLOGOPLOG OPLOG Application W db.users.insert({,,,}) PRIMARY SECONDARY SECONDARY db.users.insert({,,,}) A C K db.users.insert({,,,}) W db.users.update({,,,}) db.users.update({,,,}) A C K db.users.update({,,,}) What’s an Oplog? OUT OF DATE OUT OF DATE
  • 26. OPLOGOPLOG OPLOG Application W db.users.insert({,,,}) PRIMARY SECONDARY SECONDARY db.users.insert({,,,}) A C K db.users.insert({,,,}) W db.users.update({,,,}) db.users.update({,,,}) A C K db.users.update({,,,}) Monitor R R If (insert) { aws.s3.insertObject(…); } Before ChangeStreams and Triggers TAILING THE OPLOG
  • 27. Setting up a Change Stream (NodeJS)
  • 29. Traditional Database Triggers • Triggers are: • Code executed when a certain database event occurs • Executed within the Database • Trigger uses include: • Enforcing Referential/Business logic • Auditing and Logging • Security/Validation Logic • Maintaining Replication
  • 30. Stitch Coordinates Change Streams 1. Sets-up Change Stream 2. Maintains Streams over time 3. Passes Change Events to Coordinator Stitch Infrastructure Stitch Connection Event Coordinator CS 1 CS 3 CS 2
  • 31. Adding Triggers to Stitch Reduce Time to Market Functions as a Service: No waiting on infrastructure Reduce boilerplate: Save code Cross-Platform: Develop once Existing Apps Untouched: No reverse- engineering Reduce Ops costs Serverless: Zero wasted capacity Payment: No up-front cost Capacity on Demand: No need to over- provision in advance Secure by Default: Less operational effort Reduce Dev Effort Backend Integration Built in: No generic backend code HA & Scalability Built in: Hard and time consuming to build Orchestrate Services: Reuse what's out there Faster Cheaper Easier
  • 32. Event Driven Life-cycle Pending SucceededOwned Failed Dead Event is … Waiting for a ConsumerAttempting ExecutionCompletedAwaiting RetriesRe-Attempting ExecutionUnable to Execute (Trigger Disabled)
  • 33. Introducing: Stitch Triggers Add Trigger Add Trigger
  • 34.
  • 35.
  • 36. Event-driven Functions for Communication FUNCTION Database Update Text/E-mail EVENT Push Notification
  • 37. Event-driven Functions for Data Propagation FUNCTION EVENT Database Operation
  • 38. Stitch Ensures Correct Execution Database Events are: • Generated by matching operations ({match: { …}}) • Fully Ordered 1. Event is Generated 2. Event added to Job Queue 3. Event waits for blocking Events to complete 4. Event waits for consumer to attempt execution
  • 40. What is the Swagstore Standard Retail Store: • Browse Items • Add items to cart • Checkout • Request Notification for Restock Additional Features: • Update/text on item re-stock • Shipping text/e-mail notification Stitch Features • Functions • Triggers • 3rd Party Services
  • 41. Inventory Updates FUNCTION EVENT { ID: XXXXX SIZE: M COUNT: 100 } { ID: XXXXX DESC: “Men’s T-shirt” SM_COUNT: 12 MED_COUNT: 100 LG_COUNT: 23 }
  • 44.
  • 45.
  • 46. AUTHENTICATION BROWSE SELECT ITEM IN STOCK? CART CHECKOUT UPDATE NOTIFY Initialization • Before we leverage any features of Stitch, we must initialize our API with the Stitch App Key import React from 'react' import ReactDOM from 'react-dom' import './index.css' import App from './App' import registerServiceWorker from './registerServiceWorker' import { BrowserRouter } from 'react-router-dom' import { StitchClientFactory } from 'mongodb-stitch' const appId = 'ecommercechatbot-glwkl' let stitchClientPromise = StitchClientFactory.create(appId) stitchClientPromise.then(stitchClient => { let db = stitchClient.service('mongodb', 'mongodb- atlas').db('swagstore') let props = { stitchClient, db } ReactDOM.render( <BrowserRouter> <App {...props} /> </BrowserRouter>, document.getElementById('root') ) registerServiceWorker() })
  • 47. AUTHENTICATION BROWSE SELECT ITEM IN STOCK? CART CHECKOUT UPDATE NOTIFY Authentication • Leverage integration with Google Sign-in to authenticate the user and set the user’s profile context.
  • 48. AUTHENTICATION BROWSE SELECT ITEM IN STOCK? CART CHECKOUT UPDATE NOTIFY Browse • Leverage SDK db.collection() to access SWAG-STORE database and products collection import React, { Component } from 'react' import { ProductDeck } from '../components/Products' class ProductsPage extends Component { constructor(props) { super(props) this.state = { products: [] } } getProducts() { this.props.db .collection('products’) .find({ category: this.props.match.params.category }) .execute() .then(products => { this.setState({ products }) }) .catch(err => { console.log(err) }) } componentDidMount() { this.getProducts() } componentDidUpdate(prevProps, prevState, snapshot) { if (this.props.match.params.category !== prevProps.match.params.category) {
  • 49. AUTHENTICATION BROWSE SELECT ITEM IN STOCK? CART CHECKOUT UPDATE NOTIFY Click on Product • Reveals Product Page getProduct() { this.props.db .collection('products’) .findOne({ id: this.props.match.params.id }) .then(product => { this.setState({ product, notifying:this.props.notify .includes(this.props.match.params.id) }) this.props.handleBrowsedProduct(product) }) .catch(err => { console.log(err) }) }
  • 57. Event Subscriptions in App Structure • Event Subscriptions are a top-level Stitch asset • Can be constructed in the UI or with the CLI
  • 58. Event Subscriptions in App Structure • Event Subscriptions are a top-level Stitch asset • Can be constructed in the UI or with the CLI
  • 59. Change Streams Future Work • Non-Atlas/Multiple Application per Application • Events that span Multiple MongoDB Instances • Timed Events • Execute on a certain Interval • Execute at a given time • For now, can use Webhooks with CRON service
  • 60.
  • 61. What do change events look like? Event Subscription (Trigger) Event Source (Actual event document)
  • 62. Example Trigger Name of the Trigger Type: DATABASE, AUTHENTICATION Type of Operation to Trigger Database Collection Match Criteria Full Document or Partial Function to be called on Trigger
  • 63. Example Trigger Event Document Type of Database Operation Full Document impacted by operation Database Collection