SlideShare a Scribd company logo
1 of 48
Download to read offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Bridge OLTP and stream processing
with Amazon Kinesis, AWS Lambda &
MongoDB Atlas
Eliot Horowitz
CTO & Co-Founder
MongoDB
A R C 3 3 0 - S
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
The modern data architecture
MongoDB's place in the
AWS ecosystem
Technical use cases
Example architectures
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The modern data architecture
Persistence / Transactional
Apache
kafka
Streaming
Archival
Clients
Web
IoT
Mobile
App Servers
Event Processing
Twilio
ServicesMongoDB
Analytics
Snowflake
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The modern data architecture
Persistence / Transactional
Apache
kafka
Streaming
Archival
Clients
Web
IoT
Mobile
App Servers
Event Processing
Twilio
ServicesMongoDB
Analytics
Snowflake
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The modern data architecture
Persistence / Transactional
Apache
kafka
Streaming
Archival
Clients
Web
IoT
Mobile
App Servers
Event Processing
Twilio
ServicesMongoDB
Analytics
Snowflake
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The modern data architecture
Persistence / Transactional
Apache
kafka
Streaming
Archival
Clients
Web
IoT
Mobile
App Servers
Event Processing
Twilio
ServicesMongoDB
Analytics
Snowflake
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The modern data architecture
Persistence / Transactional
Apache
kafka
Streaming
Archival
Clients
Web
IoT
Mobile
App Servers
Event Processing
Twilio
ServicesMongoDB
Analytics
Snowflake
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The modern data architecture
MongoDB
Persistence / Transactional
Apache
kafka
Streaming
Archival
Clients
Web
IoT
Mobile
App Servers
Event Processing
Twilio
Services
Analytics
Snowflake
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The modern data architecture
Apache
kafka
Streaming
Archival
Clients
Web
IoT
Mobile
App Servers
Event Processing
Twilio
Services
Persistence / Transactional
MongoDB
Analytics
Snowflake
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The modern data architecture
Apache
kafka
Streaming
Archival
Clients
Web
IoT
Mobile
App Servers
Event Processing
Twilio
ServicesMongoDB
Persistence / Transactional
Analytics
Snowflake
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MongoDB in the AWS ecosystem
JSON
Dynamic schema
Idiomatic drivers
High Availability
Workload Isolation
Flexibility
Aggregation framework
$lookup
Fully ACID transactions
Scale out
Zoned Sharding
Flexible Storage
Power
Documents Distributed Systems
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MongoDB in AWS: Self-service
• Manage nodes on Amazon
Elastic Compute Cloud
(Amazon EC2)
• Responsible for topology
maintenance
• Responsible for version
maintenance
• Requires custom code
running on Amazon EC2Region 1 Region 2
MongoDB Replica Set
MongoDB SDK
AWS Service
App Servers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MongoDB in AWS: Managed service
• Provisioning
• Monitoring
• Data Access
• Maintenance
AWS Services
MongoDB
Atlas
• Triggers
• Functions
• JS wrapper for
AWS SDK for Go
MongoDB
Stitch
AWS SDK
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Stitch overview
MongoDB's serverless platform
Connects Atlas to the AWS
ecosystem
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Stitch overview: Query Anywhere
• Declarative ACL
• Native SDKs
• Auth integrations
• Full MongoDB query
language
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Stitch overview: Functions
• Serverless JavaScript
• Service integrations
• Lightweight
• Query MongoDB Atlas
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MongoDB Stitch Functions and AWS Lambda
Stitch Functions
• Per ms billing
• Brief executing functions
• Service orchestration
• Database triggers
• JavaScript
Lambda
• Per 100ms billing
• Longer running functions
• Packaging with libraries
• Many languages
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Stitch overview: Triggers
• Observe collections for
document updates
• Real-time
• Trigger function calls to
handle
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Stitch overview: Mobile Sync
• Embedded MongoDB on
mobile platforms
• Change merges & conflict
resolution
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Detailed technical use cases
Amazon Kinesis Data
Streams
• Inserting data
• Consuming data
Event processing
• Lambda
• MongoDB Stitch Functions
Analytics
• Amazon RedShift
• Amazon QuickSight
• MongoDB Charts
Archiving
• Getting documents to Amazon
Simple Storage Service (Amazon S3)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Kinesis Data Streams: Inserting
MongoDB
Atlas
db.observations.insert( { sensor_id: 1,
value: 482.48,
time: ISODate("2018-10-23T18:17:55.048Z") }
)
MongoDB
Stitch Trigger
MongoDB
Stitch Function
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Kinesis Data Streams: Inserting
Setting up Amazon Kinesis and MongoDB Stitch
> aws kinesis create-stream --stream-name sensorStream --shardCount n
exports = function(sensorEvent){
const sensorReading = sensorEvent.fullDocument;
const kinesis = context.services.get('aws').kinesis();
try {
kinesis.PutRecord({
Data:JSON.stringify(sensorReading), StreamName: "sensorStream", PartitionKey:
sensorReading.sensorId
}).then(function(response){
return response;
});
} catch(error) { console.log(JSON.parse(error)); }
};
MongoDB
Stitch Function
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
KCL/MongoDB
Client App
MongoDB
Atlas
Amazon Kinesis Data Streams: Consuming
db.eventTotals.updateOne( { _id: sensorId },
{ $inc: { observations: batchObservationTotal } } );
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Kinesis Data Streams: Consuming
KCL-based stream consumer
// set up connection to mongoDB
function recordProcessor() {
let shardId;
return {
initialize: function(initializeInput, completeCallback) { ... },
processRecords: function(processRecordsInput, completeCallback) { ... },
shutdown: function(shutdownInput, completeCallback) { ... }
}
};
kcl(recordProcessor().run());
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Kinesis Data Streams: Consuming
KCL-based stream consumer
initialize: function(initializeInput, completeCallback) {
shardId = initializeInput.shardId;
database.connect(mongodbConnectString, function(err) {
if (err) {
log.info(util.format('Error connecting to %s',
mongodbConnectString));
}
completeCallback();
})
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Kinesis Data Streams: Consuming
KCL-based stream consumer
processRecords: function(processRecordsInput, completeCallback) {
if (!processRecordsInput || !processRecordsInput.records) {
completeCallback(); return;
}
let records = processRecordsInput.records;
let counts = {};
records.forEach((rec) => {
let count = counts[rec.sensor_id] || 0;
counts[rec.sensor_id] = count + 1;
});
for (sensor in counts) {
mongoDB.update({"sensor_id": sensor},
{$inc: {"car_count": counts[sensor]}})
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Kinesis Data Streams: Consuming
KCL-based stream consumer
shutdown: function(shutdownInput, completeCallback) {
if (shutdownInput.reason !== 'TERMINATE') {
completeCallback();
return;
}
shutdownInput.checkpointer.checkpoint(function(err) {
completeCallback();
});
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event processing: Lambda
MongoDB
Atlas
db.orders.updateOne( { _id: 32 },
{ $set: { status: "shipped" }});
MongoDB
Stitch Trigger
MongoDB
Stitch Function
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event processing: Lambda
MongoDB Stitch Function
exports = async function() {
const lambda = context.services.get('aws-lambda-pdf-generator').lambda();
try {
const result = await lambda.Invoke({
FunctionName: "Hello_World_Test",
Payload: '{ "invoice_id": context.invoice.id,
"name": context.user.name,
"address": context.user.address,
"RMA_code": context.rma.code }'
});
return result;
} catch(error) {
console.error(EJSON.stringify(error));
}
};
MongoDB
Stitch Function
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event processing: Lambda
AWS Lambda
import json
from fpdf import FPDF
def lambda_handler(event, context):
invoice = event['invoice_id']
name = event['name']
address = event['address']
rma_code = event['RMA_code']
pdf = FPDF()
# Create your amazing PDF Document here
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MongoDB
Stitch Function
Event processing: MongoDB Stitch
MongoDB
Atlas
db.products.updateOne( { sku: "MON2018SAUCE" },
{ $inc: { inventory: -40 } } );
Twilio
MongoDB
Stitch Trigger
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event processing: MongoDB Stitch
exports = function(productEvent){
const product = productEvent.fullDocument;
const aws = context.services.get('AWSService').ses();
const input = {
Destination: { ToAddresses: ['admin@store.com'] },
Message: {
Body: { Html: { Charset:"UTF-8", Data: `ID: ${product.id}<br>Remaining:
${product.inventory}` }},
// ... etc ...
}
};
try {
aws.SendEmail(input).then(function (result) {
console.log(JSON.stringify(result));
});
} catch(error) {
console.log(JSON.parse(error));
};
};
MongoDB
Stitch Function
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Analytics: Amazon RedShift
MongoDB
Atlas
MongoDB
Stitch
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Analytics: Amazon QuickSight
BI
Connector
MongoDB
Atlas
(SQL Proxy for MongoDB)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Analytics: MongoDB Charts
MongoDB
Atlas
Charts
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MongoDB Charts: Chart Builder
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MongoDB Charts: Dashboards
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Archiving
MongoDB
Atlas
MongoDB
Stitch
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
NUMBER ONE
28
14
40
MILLION TICKETS
PER YEAR
MILLION
FANS
YEARS’
EXPERIENCE
AUSTRALIA AND
NEW ZEALAND’S
EVENT TICKETING AND
DIGITAL MARKETING
COMPANY
—
Independently verified by L.E.K Consulting
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Ticketek Realtime Data Pipeline Architecture
MongoDB
Mo2SKI production_au
Customer
Sales
CustomerSales_Internal
ticketek.backup/
customersales
Ticketek
Customer Sales
Ticketek
Data
Warehouse
Ticketek
Realtime
Salesvista-cluster
vista.backup/seatstatus
Vista Performance
Venue Cache
seatstatus_src_stream
performance_arc_stream
Seat S3
Cache
SQL Server
Lotus
VistaVenue
CacheFrom
Lotus_uat
ConfigPerformance
Kinesis Proxy
SeatStatus
Kinesis Proxy
Ticketek_ODS_
publisher_stream
Ticketek_Realtime_
publisher_stream
vista_publisher_stream
to vista
Vista Seat Status
Origin
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MongoDB Atlas: Global Cloud Database
Atlas
• Available in 15 AWS regions
• Full cross-region global distribution
of data
• Fully managed
Stitch
• Execute on changes in your data in
real time
• Integrate with 3rd party services and
entire AWS ecosystem
• Securely expose power of DB queries
out to client applications
Thank you!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
http://mongodb.com/reinvent2018
for $200 in Atlas credit. Live migrate with no
downtime!
Join us for a pub crawl at AquaKnox, 6pm
Visit our booths at the Venetian and the Builders Fair at the Aria
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

More Related Content

What's hot

Best Practices to Secure Data Lake on AWS (ANT327) - AWS re:Invent 2018
Best Practices to Secure Data Lake on AWS (ANT327) - AWS re:Invent 2018Best Practices to Secure Data Lake on AWS (ANT327) - AWS re:Invent 2018
Best Practices to Secure Data Lake on AWS (ANT327) - AWS re:Invent 2018Amazon Web Services
 
Big Data and Alexa_Voice-Enabled Analytics
Big Data and Alexa_Voice-Enabled Analytics Big Data and Alexa_Voice-Enabled Analytics
Big Data and Alexa_Voice-Enabled Analytics Amazon Web Services
 
Building Fraud Detection Systems with AWS Batch and Containers (DVC301) - AWS...
Building Fraud Detection Systems with AWS Batch and Containers (DVC301) - AWS...Building Fraud Detection Systems with AWS Batch and Containers (DVC301) - AWS...
Building Fraud Detection Systems with AWS Batch and Containers (DVC301) - AWS...Amazon Web Services
 
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018Amazon Web Services
 
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018Amazon Web Services
 
SID304 Threat Detection and Remediation with Amazon GuardDuty
 SID304 Threat Detection and Remediation with Amazon GuardDuty SID304 Threat Detection and Remediation with Amazon GuardDuty
SID304 Threat Detection and Remediation with Amazon GuardDutyAmazon Web Services
 
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...Amazon Web Services
 
Replicate and Manage Data Using Managed Databases and Serverless Technologies
Replicate and Manage Data Using Managed Databases and Serverless Technologies Replicate and Manage Data Using Managed Databases and Serverless Technologies
Replicate and Manage Data Using Managed Databases and Serverless Technologies Amazon Web Services
 
Protecting Your Greatest Asset (Your Data): Security Best Practices on Dynamo...
Protecting Your Greatest Asset (Your Data): Security Best Practices on Dynamo...Protecting Your Greatest Asset (Your Data): Security Best Practices on Dynamo...
Protecting Your Greatest Asset (Your Data): Security Best Practices on Dynamo...Amazon Web Services
 
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...Amazon Web Services
 
Build Enterprise-Grade Serverless Apps
Build Enterprise-Grade Serverless Apps Build Enterprise-Grade Serverless Apps
Build Enterprise-Grade Serverless Apps Amazon Web Services
 
Advanced Design Patterns for Amazon DynamoDB - Workshop (DAT404-R1) - AWS re:...
Advanced Design Patterns for Amazon DynamoDB - Workshop (DAT404-R1) - AWS re:...Advanced Design Patterns for Amazon DynamoDB - Workshop (DAT404-R1) - AWS re:...
Advanced Design Patterns for Amazon DynamoDB - Workshop (DAT404-R1) - AWS re:...Amazon Web Services
 
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Amazon Web Services
 
SRV208 S3 One Zone-IA and S3 Select GA
SRV208 S3 One Zone-IA and S3 Select GASRV208 S3 One Zone-IA and S3 Select GA
SRV208 S3 One Zone-IA and S3 Select GAAmazon Web Services
 
Best Practices for Amazon S3 and Amazon Glacier (STG203-R2) - AWS re:Invent 2018
Best Practices for Amazon S3 and Amazon Glacier (STG203-R2) - AWS re:Invent 2018Best Practices for Amazon S3 and Amazon Glacier (STG203-R2) - AWS re:Invent 2018
Best Practices for Amazon S3 and Amazon Glacier (STG203-R2) - AWS re:Invent 2018Amazon Web Services
 
How to Build a Data Lake in Amazon S3 & Amazon Glacier - AWS Online Tech Talks
How to Build a Data Lake in Amazon S3 & Amazon Glacier - AWS Online Tech TalksHow to Build a Data Lake in Amazon S3 & Amazon Glacier - AWS Online Tech Talks
How to Build a Data Lake in Amazon S3 & Amazon Glacier - AWS Online Tech TalksAmazon Web Services
 
Unleash the Power of Temporary AWS Credentials (a.k.a. IAM roles) (SEC390-R1)...
Unleash the Power of Temporary AWS Credentials (a.k.a. IAM roles) (SEC390-R1)...Unleash the Power of Temporary AWS Credentials (a.k.a. IAM roles) (SEC390-R1)...
Unleash the Power of Temporary AWS Credentials (a.k.a. IAM roles) (SEC390-R1)...Amazon Web Services
 
Architecture Patterns of Serverless Microservices (ARC304-R1) - AWS re:Invent...
Architecture Patterns of Serverless Microservices (ARC304-R1) - AWS re:Invent...Architecture Patterns of Serverless Microservices (ARC304-R1) - AWS re:Invent...
Architecture Patterns of Serverless Microservices (ARC304-R1) - AWS re:Invent...Amazon Web Services
 
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018Amazon Web Services
 

What's hot (20)

Best Practices to Secure Data Lake on AWS (ANT327) - AWS re:Invent 2018
Best Practices to Secure Data Lake on AWS (ANT327) - AWS re:Invent 2018Best Practices to Secure Data Lake on AWS (ANT327) - AWS re:Invent 2018
Best Practices to Secure Data Lake on AWS (ANT327) - AWS re:Invent 2018
 
Big Data and Alexa_Voice-Enabled Analytics
Big Data and Alexa_Voice-Enabled Analytics Big Data and Alexa_Voice-Enabled Analytics
Big Data and Alexa_Voice-Enabled Analytics
 
Building Fraud Detection Systems with AWS Batch and Containers (DVC301) - AWS...
Building Fraud Detection Systems with AWS Batch and Containers (DVC301) - AWS...Building Fraud Detection Systems with AWS Batch and Containers (DVC301) - AWS...
Building Fraud Detection Systems with AWS Batch and Containers (DVC301) - AWS...
 
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
 
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
 
SID304 Threat Detection and Remediation with Amazon GuardDuty
 SID304 Threat Detection and Remediation with Amazon GuardDuty SID304 Threat Detection and Remediation with Amazon GuardDuty
SID304 Threat Detection and Remediation with Amazon GuardDuty
 
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...
Real-Time Web Analytics with Amazon Kinesis Data Analytics (ADT401) - AWS re:...
 
Replicate and Manage Data Using Managed Databases and Serverless Technologies
Replicate and Manage Data Using Managed Databases and Serverless Technologies Replicate and Manage Data Using Managed Databases and Serverless Technologies
Replicate and Manage Data Using Managed Databases and Serverless Technologies
 
Protecting Your Greatest Asset (Your Data): Security Best Practices on Dynamo...
Protecting Your Greatest Asset (Your Data): Security Best Practices on Dynamo...Protecting Your Greatest Asset (Your Data): Security Best Practices on Dynamo...
Protecting Your Greatest Asset (Your Data): Security Best Practices on Dynamo...
 
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
 
Build Enterprise-Grade Serverless Apps
Build Enterprise-Grade Serverless Apps Build Enterprise-Grade Serverless Apps
Build Enterprise-Grade Serverless Apps
 
Advanced Design Patterns for Amazon DynamoDB - Workshop (DAT404-R1) - AWS re:...
Advanced Design Patterns for Amazon DynamoDB - Workshop (DAT404-R1) - AWS re:...Advanced Design Patterns for Amazon DynamoDB - Workshop (DAT404-R1) - AWS re:...
Advanced Design Patterns for Amazon DynamoDB - Workshop (DAT404-R1) - AWS re:...
 
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
 
Analyzing Streams
Analyzing StreamsAnalyzing Streams
Analyzing Streams
 
SRV208 S3 One Zone-IA and S3 Select GA
SRV208 S3 One Zone-IA and S3 Select GASRV208 S3 One Zone-IA and S3 Select GA
SRV208 S3 One Zone-IA and S3 Select GA
 
Best Practices for Amazon S3 and Amazon Glacier (STG203-R2) - AWS re:Invent 2018
Best Practices for Amazon S3 and Amazon Glacier (STG203-R2) - AWS re:Invent 2018Best Practices for Amazon S3 and Amazon Glacier (STG203-R2) - AWS re:Invent 2018
Best Practices for Amazon S3 and Amazon Glacier (STG203-R2) - AWS re:Invent 2018
 
How to Build a Data Lake in Amazon S3 & Amazon Glacier - AWS Online Tech Talks
How to Build a Data Lake in Amazon S3 & Amazon Glacier - AWS Online Tech TalksHow to Build a Data Lake in Amazon S3 & Amazon Glacier - AWS Online Tech Talks
How to Build a Data Lake in Amazon S3 & Amazon Glacier - AWS Online Tech Talks
 
Unleash the Power of Temporary AWS Credentials (a.k.a. IAM roles) (SEC390-R1)...
Unleash the Power of Temporary AWS Credentials (a.k.a. IAM roles) (SEC390-R1)...Unleash the Power of Temporary AWS Credentials (a.k.a. IAM roles) (SEC390-R1)...
Unleash the Power of Temporary AWS Credentials (a.k.a. IAM roles) (SEC390-R1)...
 
Architecture Patterns of Serverless Microservices (ARC304-R1) - AWS re:Invent...
Architecture Patterns of Serverless Microservices (ARC304-R1) - AWS re:Invent...Architecture Patterns of Serverless Microservices (ARC304-R1) - AWS re:Invent...
Architecture Patterns of Serverless Microservices (ARC304-R1) - AWS re:Invent...
 
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
 

Similar to Bridge OLTP and stream processing with Amazon Kinesis, AWS Lambda & MongoDB Atlas

Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitBuilding Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitAmazon Web Services
 
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS SummitAmazon Web Services
 
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Amazon Web Services
 
Serverless Architectural Patterns - GOTO Amsterdam
Serverless Architectural Patterns - GOTO AmsterdamServerless Architectural Patterns - GOTO Amsterdam
Serverless Architectural Patterns - GOTO AmsterdamBoaz Ziniman
 
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitAmazon Web Services
 
Building serverless enterprise applications - SRV315 - Toronto AWS Summit
Building serverless enterprise applications - SRV315 - Toronto AWS SummitBuilding serverless enterprise applications - SRV315 - Toronto AWS Summit
Building serverless enterprise applications - SRV315 - Toronto AWS SummitAmazon Web Services
 
Operations for Containerized Applications (CON334-R1) - AWS re:Invent 2018
Operations for Containerized Applications (CON334-R1) - AWS re:Invent 2018Operations for Containerized Applications (CON334-R1) - AWS re:Invent 2018
Operations for Containerized Applications (CON334-R1) - AWS re:Invent 2018Amazon Web Services
 
Building Real-time Serverless Backends
Building Real-time Serverless BackendsBuilding Real-time Serverless Backends
Building Real-time Serverless BackendsAmazon Web Services
 
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018Amazon Web Services
 
Aws Tools for Alexa Skills
Aws Tools for Alexa SkillsAws Tools for Alexa Skills
Aws Tools for Alexa SkillsBoaz Ziniman
 
Serverless Architectural Patterns I AWS Dev Day 2018
Serverless Architectural Patterns I AWS Dev Day 2018Serverless Architectural Patterns I AWS Dev Day 2018
Serverless Architectural Patterns I AWS Dev Day 2018AWS Germany
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesAmazon Web Services
 
Building Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLBuilding Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLAmazon Web Services
 
Serverless Architecture - Design Patterns and Best Practices
Serverless Architecture - Design Patterns and Best PracticesServerless Architecture - Design Patterns and Best Practices
Serverless Architecture - Design Patterns and Best PracticesAmazon Web Services
 
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)Adir Sharabi
 
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Amazon Web Services
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)Amazon Web Services
 
Developing Well-Architected Android Apps with AWS (MOB302) - AWS re:Invent 2018
Developing Well-Architected Android Apps with AWS (MOB302) - AWS re:Invent 2018Developing Well-Architected Android Apps with AWS (MOB302) - AWS re:Invent 2018
Developing Well-Architected Android Apps with AWS (MOB302) - AWS re:Invent 2018Amazon Web Services
 
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...Amazon Web Services
 
WildRydes Serverless Data Processing Workshop
WildRydes Serverless Data Processing WorkshopWildRydes Serverless Data Processing Workshop
WildRydes Serverless Data Processing WorkshopAmazon Web Services
 

Similar to Bridge OLTP and stream processing with Amazon Kinesis, AWS Lambda & MongoDB Atlas (20)

Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitBuilding Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
 
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
 
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
 
Serverless Architectural Patterns - GOTO Amsterdam
Serverless Architectural Patterns - GOTO AmsterdamServerless Architectural Patterns - GOTO Amsterdam
Serverless Architectural Patterns - GOTO Amsterdam
 
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
 
Building serverless enterprise applications - SRV315 - Toronto AWS Summit
Building serverless enterprise applications - SRV315 - Toronto AWS SummitBuilding serverless enterprise applications - SRV315 - Toronto AWS Summit
Building serverless enterprise applications - SRV315 - Toronto AWS Summit
 
Operations for Containerized Applications (CON334-R1) - AWS re:Invent 2018
Operations for Containerized Applications (CON334-R1) - AWS re:Invent 2018Operations for Containerized Applications (CON334-R1) - AWS re:Invent 2018
Operations for Containerized Applications (CON334-R1) - AWS re:Invent 2018
 
Building Real-time Serverless Backends
Building Real-time Serverless BackendsBuilding Real-time Serverless Backends
Building Real-time Serverless Backends
 
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
 
Aws Tools for Alexa Skills
Aws Tools for Alexa SkillsAws Tools for Alexa Skills
Aws Tools for Alexa Skills
 
Serverless Architectural Patterns I AWS Dev Day 2018
Serverless Architectural Patterns I AWS Dev Day 2018Serverless Architectural Patterns I AWS Dev Day 2018
Serverless Architectural Patterns I AWS Dev Day 2018
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Building Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLBuilding Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQL
 
Serverless Architecture - Design Patterns and Best Practices
Serverless Architecture - Design Patterns and Best PracticesServerless Architecture - Design Patterns and Best Practices
Serverless Architecture - Design Patterns and Best Practices
 
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
 
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
 
Developing Well-Architected Android Apps with AWS (MOB302) - AWS re:Invent 2018
Developing Well-Architected Android Apps with AWS (MOB302) - AWS re:Invent 2018Developing Well-Architected Android Apps with AWS (MOB302) - AWS re:Invent 2018
Developing Well-Architected Android Apps with AWS (MOB302) - AWS re:Invent 2018
 
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
 
WildRydes Serverless Data Processing Workshop
WildRydes Serverless Data Processing WorkshopWildRydes Serverless Data Processing Workshop
WildRydes Serverless Data Processing Workshop
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Bridge OLTP and stream processing with Amazon Kinesis, AWS Lambda & MongoDB Atlas

  • 1.
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Bridge OLTP and stream processing with Amazon Kinesis, AWS Lambda & MongoDB Atlas Eliot Horowitz CTO & Co-Founder MongoDB A R C 3 3 0 - S
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda The modern data architecture MongoDB's place in the AWS ecosystem Technical use cases Example architectures
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The modern data architecture Persistence / Transactional Apache kafka Streaming Archival Clients Web IoT Mobile App Servers Event Processing Twilio ServicesMongoDB Analytics Snowflake
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The modern data architecture Persistence / Transactional Apache kafka Streaming Archival Clients Web IoT Mobile App Servers Event Processing Twilio ServicesMongoDB Analytics Snowflake
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The modern data architecture Persistence / Transactional Apache kafka Streaming Archival Clients Web IoT Mobile App Servers Event Processing Twilio ServicesMongoDB Analytics Snowflake
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The modern data architecture Persistence / Transactional Apache kafka Streaming Archival Clients Web IoT Mobile App Servers Event Processing Twilio ServicesMongoDB Analytics Snowflake
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The modern data architecture Persistence / Transactional Apache kafka Streaming Archival Clients Web IoT Mobile App Servers Event Processing Twilio ServicesMongoDB Analytics Snowflake
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The modern data architecture MongoDB Persistence / Transactional Apache kafka Streaming Archival Clients Web IoT Mobile App Servers Event Processing Twilio Services Analytics Snowflake
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The modern data architecture Apache kafka Streaming Archival Clients Web IoT Mobile App Servers Event Processing Twilio Services Persistence / Transactional MongoDB Analytics Snowflake
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The modern data architecture Apache kafka Streaming Archival Clients Web IoT Mobile App Servers Event Processing Twilio ServicesMongoDB Persistence / Transactional Analytics Snowflake
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MongoDB in the AWS ecosystem JSON Dynamic schema Idiomatic drivers High Availability Workload Isolation Flexibility Aggregation framework $lookup Fully ACID transactions Scale out Zoned Sharding Flexible Storage Power Documents Distributed Systems
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MongoDB in AWS: Self-service • Manage nodes on Amazon Elastic Compute Cloud (Amazon EC2) • Responsible for topology maintenance • Responsible for version maintenance • Requires custom code running on Amazon EC2Region 1 Region 2 MongoDB Replica Set MongoDB SDK AWS Service App Servers
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MongoDB in AWS: Managed service • Provisioning • Monitoring • Data Access • Maintenance AWS Services MongoDB Atlas • Triggers • Functions • JS wrapper for AWS SDK for Go MongoDB Stitch AWS SDK
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Stitch overview MongoDB's serverless platform Connects Atlas to the AWS ecosystem
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Stitch overview: Query Anywhere • Declarative ACL • Native SDKs • Auth integrations • Full MongoDB query language
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Stitch overview: Functions • Serverless JavaScript • Service integrations • Lightweight • Query MongoDB Atlas
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MongoDB Stitch Functions and AWS Lambda Stitch Functions • Per ms billing • Brief executing functions • Service orchestration • Database triggers • JavaScript Lambda • Per 100ms billing • Longer running functions • Packaging with libraries • Many languages
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Stitch overview: Triggers • Observe collections for document updates • Real-time • Trigger function calls to handle
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Stitch overview: Mobile Sync • Embedded MongoDB on mobile platforms • Change merges & conflict resolution
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Detailed technical use cases Amazon Kinesis Data Streams • Inserting data • Consuming data Event processing • Lambda • MongoDB Stitch Functions Analytics • Amazon RedShift • Amazon QuickSight • MongoDB Charts Archiving • Getting documents to Amazon Simple Storage Service (Amazon S3)
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Kinesis Data Streams: Inserting MongoDB Atlas db.observations.insert( { sensor_id: 1, value: 482.48, time: ISODate("2018-10-23T18:17:55.048Z") } ) MongoDB Stitch Trigger MongoDB Stitch Function
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Kinesis Data Streams: Inserting Setting up Amazon Kinesis and MongoDB Stitch > aws kinesis create-stream --stream-name sensorStream --shardCount n exports = function(sensorEvent){ const sensorReading = sensorEvent.fullDocument; const kinesis = context.services.get('aws').kinesis(); try { kinesis.PutRecord({ Data:JSON.stringify(sensorReading), StreamName: "sensorStream", PartitionKey: sensorReading.sensorId }).then(function(response){ return response; }); } catch(error) { console.log(JSON.parse(error)); } }; MongoDB Stitch Function
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. KCL/MongoDB Client App MongoDB Atlas Amazon Kinesis Data Streams: Consuming db.eventTotals.updateOne( { _id: sensorId }, { $inc: { observations: batchObservationTotal } } );
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Kinesis Data Streams: Consuming KCL-based stream consumer // set up connection to mongoDB function recordProcessor() { let shardId; return { initialize: function(initializeInput, completeCallback) { ... }, processRecords: function(processRecordsInput, completeCallback) { ... }, shutdown: function(shutdownInput, completeCallback) { ... } } }; kcl(recordProcessor().run());
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Kinesis Data Streams: Consuming KCL-based stream consumer initialize: function(initializeInput, completeCallback) { shardId = initializeInput.shardId; database.connect(mongodbConnectString, function(err) { if (err) { log.info(util.format('Error connecting to %s', mongodbConnectString)); } completeCallback(); }) }
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Kinesis Data Streams: Consuming KCL-based stream consumer processRecords: function(processRecordsInput, completeCallback) { if (!processRecordsInput || !processRecordsInput.records) { completeCallback(); return; } let records = processRecordsInput.records; let counts = {}; records.forEach((rec) => { let count = counts[rec.sensor_id] || 0; counts[rec.sensor_id] = count + 1; }); for (sensor in counts) { mongoDB.update({"sensor_id": sensor}, {$inc: {"car_count": counts[sensor]}}) } }
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Kinesis Data Streams: Consuming KCL-based stream consumer shutdown: function(shutdownInput, completeCallback) { if (shutdownInput.reason !== 'TERMINATE') { completeCallback(); return; } shutdownInput.checkpointer.checkpoint(function(err) { completeCallback(); }); }
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Event processing: Lambda MongoDB Atlas db.orders.updateOne( { _id: 32 }, { $set: { status: "shipped" }}); MongoDB Stitch Trigger MongoDB Stitch Function
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Event processing: Lambda MongoDB Stitch Function exports = async function() { const lambda = context.services.get('aws-lambda-pdf-generator').lambda(); try { const result = await lambda.Invoke({ FunctionName: "Hello_World_Test", Payload: '{ "invoice_id": context.invoice.id, "name": context.user.name, "address": context.user.address, "RMA_code": context.rma.code }' }); return result; } catch(error) { console.error(EJSON.stringify(error)); } }; MongoDB Stitch Function
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Event processing: Lambda AWS Lambda import json from fpdf import FPDF def lambda_handler(event, context): invoice = event['invoice_id'] name = event['name'] address = event['address'] rma_code = event['RMA_code'] pdf = FPDF() # Create your amazing PDF Document here
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MongoDB Stitch Function Event processing: MongoDB Stitch MongoDB Atlas db.products.updateOne( { sku: "MON2018SAUCE" }, { $inc: { inventory: -40 } } ); Twilio MongoDB Stitch Trigger
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Event processing: MongoDB Stitch exports = function(productEvent){ const product = productEvent.fullDocument; const aws = context.services.get('AWSService').ses(); const input = { Destination: { ToAddresses: ['admin@store.com'] }, Message: { Body: { Html: { Charset:"UTF-8", Data: `ID: ${product.id}<br>Remaining: ${product.inventory}` }}, // ... etc ... } }; try { aws.SendEmail(input).then(function (result) { console.log(JSON.stringify(result)); }); } catch(error) { console.log(JSON.parse(error)); }; }; MongoDB Stitch Function
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Analytics: Amazon RedShift MongoDB Atlas MongoDB Stitch
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Analytics: Amazon QuickSight BI Connector MongoDB Atlas (SQL Proxy for MongoDB)
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Analytics: MongoDB Charts MongoDB Atlas Charts
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MongoDB Charts: Chart Builder
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MongoDB Charts: Dashboards
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Archiving MongoDB Atlas MongoDB Stitch
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 44. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. NUMBER ONE 28 14 40 MILLION TICKETS PER YEAR MILLION FANS YEARS’ EXPERIENCE AUSTRALIA AND NEW ZEALAND’S EVENT TICKETING AND DIGITAL MARKETING COMPANY — Independently verified by L.E.K Consulting
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Ticketek Realtime Data Pipeline Architecture MongoDB Mo2SKI production_au Customer Sales CustomerSales_Internal ticketek.backup/ customersales Ticketek Customer Sales Ticketek Data Warehouse Ticketek Realtime Salesvista-cluster vista.backup/seatstatus Vista Performance Venue Cache seatstatus_src_stream performance_arc_stream Seat S3 Cache SQL Server Lotus VistaVenue CacheFrom Lotus_uat ConfigPerformance Kinesis Proxy SeatStatus Kinesis Proxy Ticketek_ODS_ publisher_stream Ticketek_Realtime_ publisher_stream vista_publisher_stream to vista Vista Seat Status Origin
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MongoDB Atlas: Global Cloud Database Atlas • Available in 15 AWS regions • Full cross-region global distribution of data • Fully managed Stitch • Execute on changes in your data in real time • Integrate with 3rd party services and entire AWS ecosystem • Securely expose power of DB queries out to client applications
  • 47. Thank you! © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. http://mongodb.com/reinvent2018 for $200 in Atlas credit. Live migrate with no downtime! Join us for a pub crawl at AquaKnox, 6pm Visit our booths at the Venetian and the Builders Fair at the Aria
  • 48. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.