SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Patterns for Persistence
and Streaming in Cloud
Architectures
Jeff Carpenter
Director of Developer Advocacy
community.datastax.com | @jscarp
Photoshopping
by Steve
Halladay
community.datastax.com | @jscarp
3 Š DataStax, All Rights Reserved.
Agenda
1 Context – Monolith to Microservices, On-Prem to Cloud
2 Selecting Infrastructure, Then and Now
3 Persistence Patterns – Featuring Cassandra
4 Persistence + Streaming – Featuring Kafka
5 Resources
community.datastax.com | @jscarp
4 Š DataStax, All Rights Reserved.
Agenda
1 Context – Monolith to Microservices, On-Prem to Cloud
2 Selecting Infrastructure, Then and Now
3 Persistence Patterns – Featuring Cassandra
4 Persistence + Streaming – Featuring Kafka
5 Resources
community.datastax.com | @jscarp
Old School Enterprise Architecture
5
Š DataStax, All Rights Reserved.
All tables
ACID Transactions
Joins
Indexes
RDBMS
Monolithi
c
Applicatio
n
Other
AppsIntegration
by
database
community.datastax.com | @jscarp
Transitional Architecture
6
Š DataStax, All Rights Reserved.
RDBMS
Monolithi
c
Applicatio
n
Integration by API
Service
s
Other
Apps
NoSQL,
NewSQL,
RDBMS
?
community.datastax.com | @jscarp
On Prem DC
Microservices in the Cloud
Services
Clients
Applications
AWS DC A AWS DC B GCP DC
community.datastax.com | @jscarp
8 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
9 Š DataStax, All Rights Reserved.
Agenda
1 Context – Monolith to Microservices, On-Prem to Cloud
2 Selecting Infrastructure, Then and Now
3 Persistence Patterns – Featuring Cassandra
4 Persistence + Streaming – Featuring Kafka
5 Resources
community.datastax.com | @jscarp
Tasks of the Architect
Defining Components and Interfaces
Identifying Patterns
Managing the –ilities
Making tradeoffs
10 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Infrastructure Selection – Then
11 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Infrastructure Selection – Now?
12 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Quality Attribute Bingo - Then
•Performance •Scalability •Availability •Reliability
•Extensibility •Modularity •Reusability •Monitorability
•Deployability •Maintainability •Usability •Cost
13 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Data Infrastructure Criteria - Now
DX
Performance
Availability
Security
Flexibility
Cost
14 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
16 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Minimizing Cost of Change - Abstraction
17
Š DataStax, All Rights Reserved.
Service
Database
API
Busines
s Logic
Messaging
Data
Access
Queue / Stream
community.datastax.com | @jscarp
18 Š DataStax, All Rights Reserved.
Agenda
1 Context – Monolith to Microservices, On-Prem to Cloud
2 Selecting Infrastructure, Then and Now
3 Persistence Patterns – Featuring Cassandra
4 Persistence + Streaming – Featuring Kafka
5 Resources
community.datastax.com | @jscarp
Core
application data
Microservices and Polyglot Persistence
19
Š DataStax, All Rights Reserved.
Servic
e A
Service
B
Tabular Key-value (cache)
Servic
e C
RelationalDocument Graph
Service
D
Service
E
Reference data Content
Highly
networked data
Legacy, low
volume data
community.datastax.com | @jscarp
Apache Cassandra Overview
• First developed by Facebook
• Top-level Apache project since 2010
• Partitioned row store
• Distributed, decentralized
• Elastic scalability / high performance
• High availability / fault tolerant
• Tuneable consistency
• Cassandra Query Language (CQL)
Š DataStax, All Rights Reserved.20
Apache Cassandra ÂŽ Apache Software Foundation
community.datastax.com | @jscarp
KillrVideo – A video sharing application
https://github.com/KillrVideohttps://killrvideo.github.io
community.datastax.com | @jscarp
KillrVideo High Level Architecture
KillrVideo
Services
Your
Browser
Web
Application
Technology Choices
• Node.js
• Falcor
• Java / C# / Node.js / Python
• GRPC
• Etcd
• DataStax Drivers
• DataStax Enterprise
including Apache
Cassandra & Spark, Graph
Deployment
• Download and run locally
via Docker
• Deployed in AWS using
DataStax Managed
Services:
http://killrvideo.com/
community.datastax.com | @jscarp
Application Workflow in KillrVideo
User Logs
into site
Show basic
information
about user
Show videos
added by a
user
Show
comments
posted by a
user
Search for a
video by tag
Show latest
videos added
to the site
Show
comments
for a video
Show ratings
for a video
Show video
and its
details
community.datastax.com | @jscarp
Queries in KillrVideo to Support Workflows
Users
User Logs into
site
Find user by email
address
Show basic
information
about user
Find user by id
Comments
Show
comments for
a video
Find comments by
video (latest first)
Show
comments
posted by a
user
Find comments by
user (latest first)
Ratings
Show ratings
for a video Find ratings by video
community.datastax.com | @jscarp
Designing Tables Based on Queries
Show video
and its
details
Find video by id
Show videos
added by a
user
Find videos by user (latest
first)
CREATE TABLE videos (
videoid uuid,
userid uuid,
name text,
description text,
location text,
location_type int,
preview_image_location text,
tags set<text>,
added_date timestamp,
PRIMARY KEY (videoid)
);
CREATE TABLE user_videos (
userid uuid,
added_date timestamp,
videoid uuid,
name text,
preview_image_location text,
PRIMARY KEY (userid,
added_date, videoid)
)
WITH CLUSTERING ORDER BY (
added_date DESC,
videoid ASC);
community.datastax.com | @jscarp
Delivery Models for Cloud (Data) Infrastructure
Enterprise Versions
• Pro
– Certification and
Support
– Additional features
– Security
• Con
– Licensing cost
– Cost of change
Open Source
• Pro
– Free for dev and
prod
– Visibility and
modifiability
• Con
– Cost to maintain
expertise
– Dependence on
community
Managed Services
• Pro
– Ease of adoption
– Lowest time to
prod
– Pay as you go
• Con
– Observability
obscured
– Cost
management
community.datastax.com | @jscarp
Comparing Scale-out Databases
28 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Core
application data
Microservices and Polyglot Persistence
29
Š DataStax, All Rights Reserved.
Servic
e A
Service
B
Tabular Key-value (cache)
Servic
e C
RelationalDocument Graph
Service
D
Service
E
Reference data Content
Highly
networked data
Legacy, low
volume data
community.datastax.com | @jscarp
Should a Service be Polyglot?
30
Š DataStax, All Rights Reserved.
Hotel
Service
Cassandra Key-value
(Redis, etc.)
Name-to-
ID
mapping
?
Primary
store
(tabular)
community.datastax.com | @jscarp
Emerging - Multi-model Databases
31 Š DataStax, All Rights Reserved.
Servic
e A
Service
B
DSE database
Key-value
semantics
Servic
e C
Service
D
CQL JSON Gremlin
DSE Graph
community.datastax.com | @jscarp
32 Š DataStax, All Rights Reserved.
Agenda
1 Context – Monolith to Microservices, On-Prem to Cloud
2 Selecting Infrastructure, Then and Now
3 Persistence Patterns – Featuring Cassandra
4 Persistence + Streaming – Featuring Kafka
5 Resources
community.datastax.com | @jscarp
Apache Kafka Overview
• First developed by LinkedIn
• Top-level Apache Project since 2012
• Distributed streaming platform
• Used for real-time data pipelines and
streaming applications
• Horizontal scalability / high performance
• High availability / Fault tolerance
• Stream persistence and querying
(KSQL)
• Connect framework
33 Š DataStax, All Rights Reserved.
Apache Kafka ÂŽ Apache Software Foundation
community.datastax.com | @jscarp
Kafka Concepts
• Topics
– Collection of key/value pairs
– Append-only
– Can be partitioned
• Producers
• Consumers
– Separate offsets
34 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Kafka Concepts
• Streams applications
– Combined Producer/Consumer
• KSQL
– Query language used by stream
applications
35 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Kafka Concepts
• Brokers
• Clusters
• Connect Framework
– Sources
– Sinks
36 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Cassandra + Kafka – Similarities and Distinctives
• Concepts in common
– Distributed Systems
– Partitioning / Hashing
– Replication
• Slight differences in implementation
– Multi-DC
– Log-structured
– TTL / retention
• Cassandra excels at…
– High volume, write intensive data storage
workloads at scale
– Suitable as a system of record
– High performance searching via DSE
• Kafka excels at…
– Streaming data to/from services and legacy
data sources
– Acting upon changes in data from multiple
sources (aka pipelines)
37 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
+
Better Together – using the best of both
community.datastax.com | @jscarp
Pattern 1: Cassandra + Kafka in Microservices
39 Š DataStax, All Rights Reserved.
Some
Producer
My
microservice
DataStax Enterprise
• Consume
topic(s)
Other
consumers
• Read /
write data
• Publish to
topic(s)
community.datastax.com | @jscarp
KillrVideo Services Suggested
Videos
Service
DataStax Enterprise
DSE Graph
• UserCreated
• YouTubeVideoAdded
• UserRatedVideo • Populate graph
• Graph recommender
traversal
• Read and
write data
User Management, Video
Catalog, Ratings
Cassandra + Kafka – KillrVideo Example
community.datastax.com | @jscarp
ConfidentialŠ DataStax, All Rights Reserved.
Pattern 2: Kafka into Cassandra
41 community.datastax.com | @jscarp
Takeaways
Flexibility in selection of databases per microservice
Select and deploy infrastructure based on scale
Use queues to coordinate data synchronization
Use abstraction to minimize the cost of change
42 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
43 Š DataStax, All Rights Reserved.
Agenda
1 Context – Monolith to Microservices, On-Prem to Cloud
2 Selecting Infrastructure, Then and Now
3 Persistence Patterns – Featuring Cassandra
4 Persistence + Streaming – Featuring Kafka
5 Resources
community.datastax.com | @jscarp
DataStax Academy
• Free self-paced courses
• DS201: Apache Cassandra™
• DS210: Operations
• DS220: Data Modeling
• DS310: Search
• DS320: Analytics
• DS330: Graph
• Kafka Connector Getting Started
44 Š DataStax, All Rights Reserved.
https://academy.datastax.com
community.datastax.com | @jscarp
Docker and Datastax
45 Confidential
• WHERE
– https://hub.docker.com/u/datastax/
– https://github.com/datastax/docker-
images/tree/master/datastax-docker-image-
examples
• We provide
– Dockers images for DSE, studio, Opscenter
– Docker-compose configuration files
– Sample Deployments
• We support
– Installation on dev before 6.7
– Installation on prod from 6.7 (December 2018)
community.datastax.com | @jscarp
Live Coding on Twitch
• Live coding sessions with advocates and
guests
• Working through the challenges of
building distributed systems
• Join the conversation and ask questions
• Twitch Rewind: Kafka Connector
– https://www.youtube.com/watch?v=2_BidD
K5zGE
https://www.twitch.tv/datastaxacademy
46 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Resources – DataStax Kafka Connector
• Blog
– https://www.datastax.com/2018/12/introducing-the-datastax-apache-kafka-connector
• Download
– https://academy.datastax.com/downloads#connectors
• Docs
– https://docs.datastax.com/en/kafka/doc/index.html
• Demonstration
– https://github.com/clun/kafka-dse/tree/driver2
• Examples
– https://github.com/datastax/kafka-examples
47 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
Thank You!
Come visit our booth!
community.datastax.com | @jscarp

Weitere ähnliche Inhalte

Was ist angesagt?

Family data sheet HP Virtual Connect(May 2013)
Family data sheet HP Virtual Connect(May 2013)Family data sheet HP Virtual Connect(May 2013)
Family data sheet HP Virtual Connect(May 2013)
E. Balauca
 
Cloud Migration
Cloud MigrationCloud Migration
Cloud Migration
Jolyne Marie
 

Was ist angesagt? (20)

DevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceDevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 Conference
 
Preventative Maintenance of Robots in Automotive Industry
Preventative Maintenance of Robots in Automotive IndustryPreventative Maintenance of Robots in Automotive Industry
Preventative Maintenance of Robots in Automotive Industry
 
Dev ops for big data cluster management tools
Dev ops for big data  cluster management toolsDev ops for big data  cluster management tools
Dev ops for big data cluster management tools
 
How to deploy Apache Spark in a multi-tenant, on-premises environment
How to deploy Apache Spark in a multi-tenant, on-premises environmentHow to deploy Apache Spark in a multi-tenant, on-premises environment
How to deploy Apache Spark in a multi-tenant, on-premises environment
 
Lambda Architecture with Spark
Lambda Architecture with SparkLambda Architecture with Spark
Lambda Architecture with Spark
 
Spark Technology Center IBM
Spark Technology Center IBMSpark Technology Center IBM
Spark Technology Center IBM
 
Graphene – Microsoft SCOPE on Tez
Graphene – Microsoft SCOPE on Tez Graphene – Microsoft SCOPE on Tez
Graphene – Microsoft SCOPE on Tez
 
20150716 introduction to apache spark v3
20150716 introduction to apache spark v3 20150716 introduction to apache spark v3
20150716 introduction to apache spark v3
 
Family data sheet HP Virtual Connect(May 2013)
Family data sheet HP Virtual Connect(May 2013)Family data sheet HP Virtual Connect(May 2013)
Family data sheet HP Virtual Connect(May 2013)
 
1200x630 1
1200x630 11200x630 1
1200x630 1
 
Hadoop Virtualization - Intel White Paper
Hadoop Virtualization - Intel White PaperHadoop Virtualization - Intel White Paper
Hadoop Virtualization - Intel White Paper
 
Realizing the promise of portable data processing with Apache Beam
Realizing the promise of portable data processing with Apache BeamRealizing the promise of portable data processing with Apache Beam
Realizing the promise of portable data processing with Apache Beam
 
Cloud Migration
Cloud MigrationCloud Migration
Cloud Migration
 
When the Cloud is a Rockin: High Availability in Apache CloudStack
When the Cloud is a Rockin: High Availability in Apache CloudStackWhen the Cloud is a Rockin: High Availability in Apache CloudStack
When the Cloud is a Rockin: High Availability in Apache CloudStack
 
Meeting Performance Goals in multi-tenant Hadoop Clusters
Meeting Performance Goals in multi-tenant Hadoop ClustersMeeting Performance Goals in multi-tenant Hadoop Clusters
Meeting Performance Goals in multi-tenant Hadoop Clusters
 
Gartner evaluation criteria_for_clou_security_networking
Gartner evaluation criteria_for_clou_security_networkingGartner evaluation criteria_for_clou_security_networking
Gartner evaluation criteria_for_clou_security_networking
 
[よくわかるAmazon Redshift]Amazon Redshift最新情報と導入事例のご紹介
[よくわかるAmazon Redshift]Amazon Redshift最新情報と導入事例のご紹介[よくわかるAmazon Redshift]Amazon Redshift最新情報と導入事例のご紹介
[よくわかるAmazon Redshift]Amazon Redshift最新情報と導入事例のご紹介
 
Bridging the gap of Relational to Hadoop using Sqoop @ Expedia
Bridging the gap of Relational to Hadoop using Sqoop @ ExpediaBridging the gap of Relational to Hadoop using Sqoop @ Expedia
Bridging the gap of Relational to Hadoop using Sqoop @ Expedia
 
Benchmark of Alibaba Cloud capabilities
Benchmark of Alibaba Cloud capabilitiesBenchmark of Alibaba Cloud capabilities
Benchmark of Alibaba Cloud capabilities
 
Debunking Common Myths in Stream Processing
Debunking Common Myths in Stream ProcessingDebunking Common Myths in Stream Processing
Debunking Common Myths in Stream Processing
 

Ähnlich wie Data Con LA 2019 - Patterns for Persistence and Streaming in Cloud Architectures by Jeffrey Carpenter

An architecture for federated data discovery and lineage over on-prem datasou...
An architecture for federated data discovery and lineage over on-prem datasou...An architecture for federated data discovery and lineage over on-prem datasou...
An architecture for federated data discovery and lineage over on-prem datasou...
DataWorks Summit
 
Unconference Round Table Notes
Unconference Round Table NotesUnconference Round Table Notes
Unconference Round Table Notes
Timothy Spann
 

Ähnlich wie Data Con LA 2019 - Patterns for Persistence and Streaming in Cloud Architectures by Jeffrey Carpenter (20)

Patterns for Persistence and Streaming in Microservice Architectures
Patterns for Persistence and Streaming in Microservice ArchitecturesPatterns for Persistence and Streaming in Microservice Architectures
Patterns for Persistence and Streaming in Microservice Architectures
 
Deploying Cassandra Multi-cloud
Deploying Cassandra Multi-cloudDeploying Cassandra Multi-cloud
Deploying Cassandra Multi-cloud
 
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
Building a Pluggable Analytics Stack with Cassandra (Jim Peregord, Element Co...
 
First in Class: Optimizing the Data Lake for Tighter Integration
First in Class: Optimizing the Data Lake for Tighter IntegrationFirst in Class: Optimizing the Data Lake for Tighter Integration
First in Class: Optimizing the Data Lake for Tighter Integration
 
An architecture for federated data discovery and lineage over on-prem datasou...
An architecture for federated data discovery and lineage over on-prem datasou...An architecture for federated data discovery and lineage over on-prem datasou...
An architecture for federated data discovery and lineage over on-prem datasou...
 
Webinar | Better Together: Apache Cassandra and Apache Kafka
Webinar  |  Better Together: Apache Cassandra and Apache KafkaWebinar  |  Better Together: Apache Cassandra and Apache Kafka
Webinar | Better Together: Apache Cassandra and Apache Kafka
 
PayPal datalake journey | teradata - edge of next | san diego | 2017 october ...
PayPal datalake journey | teradata - edge of next | san diego | 2017 october ...PayPal datalake journey | teradata - edge of next | san diego | 2017 october ...
PayPal datalake journey | teradata - edge of next | san diego | 2017 october ...
 
Stargate, the gateway for some multi-models data API
Stargate, the gateway for some multi-models data APIStargate, the gateway for some multi-models data API
Stargate, the gateway for some multi-models data API
 
Unconference Round Table Notes
Unconference Round Table NotesUnconference Round Table Notes
Unconference Round Table Notes
 
Top 10 Best Practices for Apache Cassandra and DataStax Enterprise
Top 10 Best Practices for Apache Cassandra and DataStax EnterpriseTop 10 Best Practices for Apache Cassandra and DataStax Enterprise
Top 10 Best Practices for Apache Cassandra and DataStax Enterprise
 
Key Database Criteria for Cloud Applications
Key Database Criteria for Cloud ApplicationsKey Database Criteria for Cloud Applications
Key Database Criteria for Cloud Applications
 
YugaByte + PKS CloudFoundry Meetup 10/15/2018
YugaByte + PKS CloudFoundry Meetup 10/15/2018YugaByte + PKS CloudFoundry Meetup 10/15/2018
YugaByte + PKS CloudFoundry Meetup 10/15/2018
 
Oracle cloud oagi
Oracle cloud oagiOracle cloud oagi
Oracle cloud oagi
 
Carrier Grade OCP: Open Solutions for Telecom Data Centers
Carrier Grade OCP: Open Solutions for Telecom Data CentersCarrier Grade OCP: Open Solutions for Telecom Data Centers
Carrier Grade OCP: Open Solutions for Telecom Data Centers
 
Webinar: The Performance Challenge: Providing an Amazing Customer Experience ...
Webinar: The Performance Challenge: Providing an Amazing Customer Experience ...Webinar: The Performance Challenge: Providing an Amazing Customer Experience ...
Webinar: The Performance Challenge: Providing an Amazing Customer Experience ...
 
Leveraging Mainframe Data for Modern Analytics
Leveraging Mainframe Data for Modern AnalyticsLeveraging Mainframe Data for Modern Analytics
Leveraging Mainframe Data for Modern Analytics
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPS
 
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
Private Cloud: Database-as-a-Service with Enterprise Manager : OOW 16
 
Data Con LA 2019 Keynote Jeffrey Carpenter
Data Con LA 2019 Keynote Jeffrey CarpenterData Con LA 2019 Keynote Jeffrey Carpenter
Data Con LA 2019 Keynote Jeffrey Carpenter
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robots
 

Mehr von Data Con LA

Data Con LA 2022 - Collaborative Data Exploration using Conversational AI
Data Con LA 2022 - Collaborative Data Exploration using Conversational AIData Con LA 2022 - Collaborative Data Exploration using Conversational AI
Data Con LA 2022 - Collaborative Data Exploration using Conversational AI
Data Con LA
 
Data Con LA 2022 - Why Database Modernization Makes Your Data Decisions More ...
Data Con LA 2022 - Why Database Modernization Makes Your Data Decisions More ...Data Con LA 2022 - Why Database Modernization Makes Your Data Decisions More ...
Data Con LA 2022 - Why Database Modernization Makes Your Data Decisions More ...
Data Con LA
 
Data Con LA 2022- Embedding medical journeys with machine learning to improve...
Data Con LA 2022- Embedding medical journeys with machine learning to improve...Data Con LA 2022- Embedding medical journeys with machine learning to improve...
Data Con LA 2022- Embedding medical journeys with machine learning to improve...
Data Con LA
 

Mehr von Data Con LA (20)

Data Con LA 2022 Keynotes
Data Con LA 2022 KeynotesData Con LA 2022 Keynotes
Data Con LA 2022 Keynotes
 
Data Con LA 2022 Keynotes
Data Con LA 2022 KeynotesData Con LA 2022 Keynotes
Data Con LA 2022 Keynotes
 
Data Con LA 2022 Keynote
Data Con LA 2022 KeynoteData Con LA 2022 Keynote
Data Con LA 2022 Keynote
 
Data Con LA 2022 - Startup Showcase
Data Con LA 2022 - Startup ShowcaseData Con LA 2022 - Startup Showcase
Data Con LA 2022 - Startup Showcase
 
Data Con LA 2022 Keynote
Data Con LA 2022 KeynoteData Con LA 2022 Keynote
Data Con LA 2022 Keynote
 
Data Con LA 2022 - Using Google trends data to build product recommendations
Data Con LA 2022 - Using Google trends data to build product recommendationsData Con LA 2022 - Using Google trends data to build product recommendations
Data Con LA 2022 - Using Google trends data to build product recommendations
 
Data Con LA 2022 - AI Ethics
Data Con LA 2022 - AI EthicsData Con LA 2022 - AI Ethics
Data Con LA 2022 - AI Ethics
 
Data Con LA 2022 - Improving disaster response with machine learning
Data Con LA 2022 - Improving disaster response with machine learningData Con LA 2022 - Improving disaster response with machine learning
Data Con LA 2022 - Improving disaster response with machine learning
 
Data Con LA 2022 - What's new with MongoDB 6.0 and Atlas
Data Con LA 2022 - What's new with MongoDB 6.0 and AtlasData Con LA 2022 - What's new with MongoDB 6.0 and Atlas
Data Con LA 2022 - What's new with MongoDB 6.0 and Atlas
 
Data Con LA 2022 - Real world consumer segmentation
Data Con LA 2022 - Real world consumer segmentationData Con LA 2022 - Real world consumer segmentation
Data Con LA 2022 - Real world consumer segmentation
 
Data Con LA 2022 - Modernizing Analytics & AI for today's needs: Intuit Turbo...
Data Con LA 2022 - Modernizing Analytics & AI for today's needs: Intuit Turbo...Data Con LA 2022 - Modernizing Analytics & AI for today's needs: Intuit Turbo...
Data Con LA 2022 - Modernizing Analytics & AI for today's needs: Intuit Turbo...
 
Data Con LA 2022 - Moving Data at Scale to AWS
Data Con LA 2022 - Moving Data at Scale to AWSData Con LA 2022 - Moving Data at Scale to AWS
Data Con LA 2022 - Moving Data at Scale to AWS
 
Data Con LA 2022 - Collaborative Data Exploration using Conversational AI
Data Con LA 2022 - Collaborative Data Exploration using Conversational AIData Con LA 2022 - Collaborative Data Exploration using Conversational AI
Data Con LA 2022 - Collaborative Data Exploration using Conversational AI
 
Data Con LA 2022 - Why Database Modernization Makes Your Data Decisions More ...
Data Con LA 2022 - Why Database Modernization Makes Your Data Decisions More ...Data Con LA 2022 - Why Database Modernization Makes Your Data Decisions More ...
Data Con LA 2022 - Why Database Modernization Makes Your Data Decisions More ...
 
Data Con LA 2022 - Intro to Data Science
Data Con LA 2022 - Intro to Data ScienceData Con LA 2022 - Intro to Data Science
Data Con LA 2022 - Intro to Data Science
 
Data Con LA 2022 - How are NFTs and DeFi Changing Entertainment
Data Con LA 2022 - How are NFTs and DeFi Changing EntertainmentData Con LA 2022 - How are NFTs and DeFi Changing Entertainment
Data Con LA 2022 - How are NFTs and DeFi Changing Entertainment
 
Data Con LA 2022 - Why Data Quality vigilance requires an End-to-End, Automat...
Data Con LA 2022 - Why Data Quality vigilance requires an End-to-End, Automat...Data Con LA 2022 - Why Data Quality vigilance requires an End-to-End, Automat...
Data Con LA 2022 - Why Data Quality vigilance requires an End-to-End, Automat...
 
Data Con LA 2022-Perfect Viral Ad prediction of Superbowl 2022 using Tease, T...
Data Con LA 2022-Perfect Viral Ad prediction of Superbowl 2022 using Tease, T...Data Con LA 2022-Perfect Viral Ad prediction of Superbowl 2022 using Tease, T...
Data Con LA 2022-Perfect Viral Ad prediction of Superbowl 2022 using Tease, T...
 
Data Con LA 2022- Embedding medical journeys with machine learning to improve...
Data Con LA 2022- Embedding medical journeys with machine learning to improve...Data Con LA 2022- Embedding medical journeys with machine learning to improve...
Data Con LA 2022- Embedding medical journeys with machine learning to improve...
 
Data Con LA 2022 - Data Streaming with Kafka
Data Con LA 2022 - Data Streaming with KafkaData Con LA 2022 - Data Streaming with Kafka
Data Con LA 2022 - Data Streaming with Kafka
 

KĂźrzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

KĂźrzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

Data Con LA 2019 - Patterns for Persistence and Streaming in Cloud Architectures by Jeffrey Carpenter

  • 1. Patterns for Persistence and Streaming in Cloud Architectures Jeff Carpenter Director of Developer Advocacy community.datastax.com | @jscarp
  • 3. 3 Š DataStax, All Rights Reserved. Agenda 1 Context – Monolith to Microservices, On-Prem to Cloud 2 Selecting Infrastructure, Then and Now 3 Persistence Patterns – Featuring Cassandra 4 Persistence + Streaming – Featuring Kafka 5 Resources community.datastax.com | @jscarp
  • 4. 4 Š DataStax, All Rights Reserved. Agenda 1 Context – Monolith to Microservices, On-Prem to Cloud 2 Selecting Infrastructure, Then and Now 3 Persistence Patterns – Featuring Cassandra 4 Persistence + Streaming – Featuring Kafka 5 Resources community.datastax.com | @jscarp
  • 5. Old School Enterprise Architecture 5 Š DataStax, All Rights Reserved. All tables ACID Transactions Joins Indexes RDBMS Monolithi c Applicatio n Other AppsIntegration by database community.datastax.com | @jscarp
  • 6. Transitional Architecture 6 Š DataStax, All Rights Reserved. RDBMS Monolithi c Applicatio n Integration by API Service s Other Apps NoSQL, NewSQL, RDBMS ? community.datastax.com | @jscarp
  • 7. On Prem DC Microservices in the Cloud Services Clients Applications AWS DC A AWS DC B GCP DC community.datastax.com | @jscarp
  • 8. 8 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 9. 9 Š DataStax, All Rights Reserved. Agenda 1 Context – Monolith to Microservices, On-Prem to Cloud 2 Selecting Infrastructure, Then and Now 3 Persistence Patterns – Featuring Cassandra 4 Persistence + Streaming – Featuring Kafka 5 Resources community.datastax.com | @jscarp
  • 10. Tasks of the Architect Defining Components and Interfaces Identifying Patterns Managing the –ilities Making tradeoffs 10 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 11. Infrastructure Selection – Then 11 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 12. Infrastructure Selection – Now? 12 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 13. Quality Attribute Bingo - Then •Performance •Scalability •Availability •Reliability •Extensibility •Modularity •Reusability •Monitorability •Deployability •Maintainability •Usability •Cost 13 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 14. Data Infrastructure Criteria - Now DX Performance Availability Security Flexibility Cost 14 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 15.
  • 16. 16 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 17. Minimizing Cost of Change - Abstraction 17 Š DataStax, All Rights Reserved. Service Database API Busines s Logic Messaging Data Access Queue / Stream community.datastax.com | @jscarp
  • 18. 18 Š DataStax, All Rights Reserved. Agenda 1 Context – Monolith to Microservices, On-Prem to Cloud 2 Selecting Infrastructure, Then and Now 3 Persistence Patterns – Featuring Cassandra 4 Persistence + Streaming – Featuring Kafka 5 Resources community.datastax.com | @jscarp
  • 19. Core application data Microservices and Polyglot Persistence 19 Š DataStax, All Rights Reserved. Servic e A Service B Tabular Key-value (cache) Servic e C RelationalDocument Graph Service D Service E Reference data Content Highly networked data Legacy, low volume data community.datastax.com | @jscarp
  • 20. Apache Cassandra Overview • First developed by Facebook • Top-level Apache project since 2010 • Partitioned row store • Distributed, decentralized • Elastic scalability / high performance • High availability / fault tolerant • Tuneable consistency • Cassandra Query Language (CQL) Š DataStax, All Rights Reserved.20 Apache Cassandra ÂŽ Apache Software Foundation community.datastax.com | @jscarp
  • 21.
  • 22. KillrVideo – A video sharing application https://github.com/KillrVideohttps://killrvideo.github.io community.datastax.com | @jscarp
  • 23. KillrVideo High Level Architecture KillrVideo Services Your Browser Web Application Technology Choices • Node.js • Falcor • Java / C# / Node.js / Python • GRPC • Etcd • DataStax Drivers • DataStax Enterprise including Apache Cassandra & Spark, Graph Deployment • Download and run locally via Docker • Deployed in AWS using DataStax Managed Services: http://killrvideo.com/ community.datastax.com | @jscarp
  • 24. Application Workflow in KillrVideo User Logs into site Show basic information about user Show videos added by a user Show comments posted by a user Search for a video by tag Show latest videos added to the site Show comments for a video Show ratings for a video Show video and its details community.datastax.com | @jscarp
  • 25. Queries in KillrVideo to Support Workflows Users User Logs into site Find user by email address Show basic information about user Find user by id Comments Show comments for a video Find comments by video (latest first) Show comments posted by a user Find comments by user (latest first) Ratings Show ratings for a video Find ratings by video community.datastax.com | @jscarp
  • 26. Designing Tables Based on Queries Show video and its details Find video by id Show videos added by a user Find videos by user (latest first) CREATE TABLE videos ( videoid uuid, userid uuid, name text, description text, location text, location_type int, preview_image_location text, tags set<text>, added_date timestamp, PRIMARY KEY (videoid) ); CREATE TABLE user_videos ( userid uuid, added_date timestamp, videoid uuid, name text, preview_image_location text, PRIMARY KEY (userid, added_date, videoid) ) WITH CLUSTERING ORDER BY ( added_date DESC, videoid ASC); community.datastax.com | @jscarp
  • 27. Delivery Models for Cloud (Data) Infrastructure Enterprise Versions • Pro – Certification and Support – Additional features – Security • Con – Licensing cost – Cost of change Open Source • Pro – Free for dev and prod – Visibility and modifiability • Con – Cost to maintain expertise – Dependence on community Managed Services • Pro – Ease of adoption – Lowest time to prod – Pay as you go • Con – Observability obscured – Cost management community.datastax.com | @jscarp
  • 28. Comparing Scale-out Databases 28 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 29. Core application data Microservices and Polyglot Persistence 29 Š DataStax, All Rights Reserved. Servic e A Service B Tabular Key-value (cache) Servic e C RelationalDocument Graph Service D Service E Reference data Content Highly networked data Legacy, low volume data community.datastax.com | @jscarp
  • 30. Should a Service be Polyglot? 30 Š DataStax, All Rights Reserved. Hotel Service Cassandra Key-value (Redis, etc.) Name-to- ID mapping ? Primary store (tabular) community.datastax.com | @jscarp
  • 31. Emerging - Multi-model Databases 31 Š DataStax, All Rights Reserved. Servic e A Service B DSE database Key-value semantics Servic e C Service D CQL JSON Gremlin DSE Graph community.datastax.com | @jscarp
  • 32. 32 Š DataStax, All Rights Reserved. Agenda 1 Context – Monolith to Microservices, On-Prem to Cloud 2 Selecting Infrastructure, Then and Now 3 Persistence Patterns – Featuring Cassandra 4 Persistence + Streaming – Featuring Kafka 5 Resources community.datastax.com | @jscarp
  • 33. Apache Kafka Overview • First developed by LinkedIn • Top-level Apache Project since 2012 • Distributed streaming platform • Used for real-time data pipelines and streaming applications • Horizontal scalability / high performance • High availability / Fault tolerance • Stream persistence and querying (KSQL) • Connect framework 33 Š DataStax, All Rights Reserved. Apache Kafka ÂŽ Apache Software Foundation community.datastax.com | @jscarp
  • 34. Kafka Concepts • Topics – Collection of key/value pairs – Append-only – Can be partitioned • Producers • Consumers – Separate offsets 34 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 35. Kafka Concepts • Streams applications – Combined Producer/Consumer • KSQL – Query language used by stream applications 35 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 36. Kafka Concepts • Brokers • Clusters • Connect Framework – Sources – Sinks 36 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 37. Cassandra + Kafka – Similarities and Distinctives • Concepts in common – Distributed Systems – Partitioning / Hashing – Replication • Slight differences in implementation – Multi-DC – Log-structured – TTL / retention • Cassandra excels at… – High volume, write intensive data storage workloads at scale – Suitable as a system of record – High performance searching via DSE • Kafka excels at… – Streaming data to/from services and legacy data sources – Acting upon changes in data from multiple sources (aka pipelines) 37 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 38. + Better Together – using the best of both community.datastax.com | @jscarp
  • 39. Pattern 1: Cassandra + Kafka in Microservices 39 Š DataStax, All Rights Reserved. Some Producer My microservice DataStax Enterprise • Consume topic(s) Other consumers • Read / write data • Publish to topic(s) community.datastax.com | @jscarp
  • 40. KillrVideo Services Suggested Videos Service DataStax Enterprise DSE Graph • UserCreated • YouTubeVideoAdded • UserRatedVideo • Populate graph • Graph recommender traversal • Read and write data User Management, Video Catalog, Ratings Cassandra + Kafka – KillrVideo Example community.datastax.com | @jscarp
  • 41. ConfidentialŠ DataStax, All Rights Reserved. Pattern 2: Kafka into Cassandra 41 community.datastax.com | @jscarp
  • 42. Takeaways Flexibility in selection of databases per microservice Select and deploy infrastructure based on scale Use queues to coordinate data synchronization Use abstraction to minimize the cost of change 42 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 43. 43 Š DataStax, All Rights Reserved. Agenda 1 Context – Monolith to Microservices, On-Prem to Cloud 2 Selecting Infrastructure, Then and Now 3 Persistence Patterns – Featuring Cassandra 4 Persistence + Streaming – Featuring Kafka 5 Resources community.datastax.com | @jscarp
  • 44. DataStax Academy • Free self-paced courses • DS201: Apache Cassandra™ • DS210: Operations • DS220: Data Modeling • DS310: Search • DS320: Analytics • DS330: Graph • Kafka Connector Getting Started 44 Š DataStax, All Rights Reserved. https://academy.datastax.com community.datastax.com | @jscarp
  • 45. Docker and Datastax 45 Confidential • WHERE – https://hub.docker.com/u/datastax/ – https://github.com/datastax/docker- images/tree/master/datastax-docker-image- examples • We provide – Dockers images for DSE, studio, Opscenter – Docker-compose configuration files – Sample Deployments • We support – Installation on dev before 6.7 – Installation on prod from 6.7 (December 2018) community.datastax.com | @jscarp
  • 46. Live Coding on Twitch • Live coding sessions with advocates and guests • Working through the challenges of building distributed systems • Join the conversation and ask questions • Twitch Rewind: Kafka Connector – https://www.youtube.com/watch?v=2_BidD K5zGE https://www.twitch.tv/datastaxacademy 46 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 47. Resources – DataStax Kafka Connector • Blog – https://www.datastax.com/2018/12/introducing-the-datastax-apache-kafka-connector • Download – https://academy.datastax.com/downloads#connectors • Docs – https://docs.datastax.com/en/kafka/doc/index.html • Demonstration – https://github.com/clun/kafka-dse/tree/driver2 • Examples – https://github.com/datastax/kafka-examples 47 Š DataStax, All Rights Reserved. community.datastax.com | @jscarp
  • 48. Thank You! Come visit our booth! community.datastax.com | @jscarp

Hinweis der Redaktion

  1. Architect – distributed systems, will share mistakes Author advocate
  2. As of just a few years ago, most application development used a single primary data store based on a relational database, plus the occasional file based storage for other data. This seemed great because you could have all your data in one place, and even have transactions with ACID semantics spanning multiple tables. You could add any indexes you wanted and perform complex joins across tables These databases worked so well that sometimes we were even tempted to use them as the interface between systems. This “integration by database” came to be considered an anti-pattern as we realized how brittle these integrations were – usually when we updated an application database only to find that it broke other apps. This architecture served us well for many years, and is still appropriate for some applications. The problem is that its entirely inappropriate for cloud-scale applications.
  3. Strangler pattern for getting rid of monoliths
  4. Decomposed into microservices More lightweight/flexible front end apps, webapps Independently scalable Deploy across multiple datacenters Data movement becomes an important factor
  5. Multi-cloud demo
  6. Modified from Eben Components and interfaces – including API definition and defining patterns
  7. How I grew up Based on trade studies Based on enterprise license agreements Major contracts, Multi-year agreements Corporate governance, Guidance documents
  8. Now, the wild west? DevOps – you build it, you maintain it Not everyone does this
  9. Matrixed decision making
  10. Now, a progression Developers start the food chain What do we encounter, when
  11. The bogeyman We all use it
  12. Lock in is lazy Need a better discourse Cost to adopt, cost to operate, cost to change
  13. Soapbox – regardless of infrastructure choices Use a modular design within the service to isolate concerns If the API style changes If the database changes If the queue or stream changes Discoverable endpoints, well known names – if the deployment changes
  14. So we had to come up with new architectural approaches to deal with this new world of massively scalable, distributed systems. The microservice architecture approach has become very popular for building cloud-based applications, and for good reason. The ability to develop, manage and scale services independently gives us a ton of flexibility. One axis of this flexibility is known by the term “polyglot persistence”, as popularized by Martin Fowler and others. In this approach, services are developed by separate teams, and each team is free to use whatever storage mechanism seems most appropriate to them. So one team developing Service A might choose to use Cassandra because it is managing core application data that really fits that tabular format, while Service B’s data supports very simple semantics of looking up reference values by well known keys. Another service C might be primarily concerned with serving up content for a website and use a document store. Another Service. Service D might be all about navigating complex relationships between data such as customer data and relationships. We might also have a legacy system or service that uses relational technology, or perhaps a service that manages low volume data that doesn’t change often, so a relational database might be a good fit for that. Note that I’m not trying to constrain our trade space or specify a particular design, I’m just trying to highlight the strengths of each of these styles of database and why a multi-model approach to cloud architecture can be attractive.
  15. We built DSE to address these cloud application characteristics They help describe why we were major contributors behind Apache Cassandra, and other open source technologies And it’s why this technology has been applied successfully in many companies Cassandra was first developed at Facebook (explain other details) DataStax Enterprise is our distribution of Apache Cassandra. We say this distribution is the best because of the additional security and performance features we put into the core database and the testing and hardening we do
  16. What is KillrVideo? A great way to learn concepts
  17. So what is behind the system We built a microservice application
  18. Using this to demonstrate how we identify data models and services
  19. Service identification – wrapping a service around video tables
  20. Revisiting this – at what levels do we apply polyglot persistence concepts?
  21. It’s also possible that we could design a service that actually sits on top of multiple databases, although in that case I’d definitely want to make sure that we’re not over-engineering or building a service whose scope of work is too large. Probably not a good combination
  22. Another way to think about this problem is to consider that our database itself could be a multi-model database, that is a database that supports different models of interaction. For example, Datastax Enterprise is built on top of the most performant, hardened distribution of Apache Cassandra Services could interact with the core cassandra directly using CQL. Although DSE does not provide a key-value API, you can interact with it as a key value store. DSE does provide document-style interaction in terms of JSON documents. DSE Graph is a highly scalable graph database that is built directly on top of DSE core Cassandra and supports the popular Gremlin API. Why would we want something like this? I can think of two primary reasons. First, Cassandra has demonstrated that it can handle the massive scalability and performance required of cloud applications, which is not necessarily true of other databases. DSE provides that hardened, stable, reliable implementation of Cassandra as a solid foundation for your cloud application. Second, using a multi-model database approach with DSE can help us with operational simplicity. Even if different development teams are using different APIs and modes of interaction with the backend database platform, we can gain efficiency by only having a single platform to manage.
  23. Replication – but subtle
  24. A third pattern is possible – Cassandra as a destination system