SlideShare a Scribd company logo
Drinking from the Stream
How to use messaging platforms for
scalability & performance
Mark Heckler
Professional Problem Solver, Spring Developer & Advocate
www.thehecklers.com
mark@thehecklers.com
mheckler@pivotal.io
@mkheck
@mkheck www.thehecklers.com
Distributed systems are easy…right?
@mkheck www.thehecklers.com
Who am I?
• Author
• Architect & Developer
• Java Champion, Rockstar
• Professional Problem Solver
• Spring Developer & Advocate
• Creador y curador de
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
The Bezos mandate
All teams will henceforth expose their data and functionality through service interfaces.
Teams must communicate with each other through these interfaces.
There will be no other form of interprocess communication allowed: no direct linking, no direct
reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The
only communication allowed is via service interface calls over the network.
It doesn’t matter what technology is used: HTTP, CORBA, pub/sub, etc.
All service interfaces, without exception, must be designed from the ground up to be
externalizable. That is to say, the team must plan and design to be able to expose the interface
to developers in the outside world. No exceptions.
Anyone who doesn’t do this will be fired.
@mkheck www.thehecklers.com
The 12 Factor Manifesto
One codebase in revision control, many deploys
Explicitly declare & isolate dependencies
Store config in environment
Treat backing services as attached resources
Build, release, run
Stateless processes
Export services via port binding
Scale out via process model
Fast startup, graceful shutdown
Dev/prod parity
Treat logs as event streams
Admin (one off) processes
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Why use it?
@mkheck www.thehecklers.com
SCSt + ${messaging.platform} =
@mkheck www.thehecklers.com
SinkProcessor
Power
Source
@mkheck www.thehecklers.com
Processor
Sink
Sink
Processor
Scalability
Source
Sink
Sink
@mkheck www.thehecklers.com
Processor
Sink
Sink
Processor
Flexibility
Source
Sink
Sink
@mkheck www.thehecklers.com
Processor
Sink
Sink
Processor
Versatility
Source
Sink
Sink
@mkheck www.thehecklers.com
Let’s code!
@mkheck www.thehecklers.com
@mkheck www.thehecklers.com
Resources
https://github.com/mkheck/drinking-from-the-stream
https://cloud.spring.io/spring-cloud-stream/
mark@thehecklers.com, mheckler@pivotal.io
@mkheck on Twitter
Kotlin fan? https://github.com/mkheck/drinking-from-the-stream-kotlin

More Related Content

What's hot

Pivotal Digital Transformation Forum: Requirements to Deliver Innovation to M...
Pivotal Digital Transformation Forum: Requirements to Deliver Innovation to M...Pivotal Digital Transformation Forum: Requirements to Deliver Innovation to M...
Pivotal Digital Transformation Forum: Requirements to Deliver Innovation to M...
VMware Tanzu
 

What's hot (20)

Pivotal Digital Transformation Forum: Agile Development
Pivotal Digital Transformation Forum: Agile Development Pivotal Digital Transformation Forum: Agile Development
Pivotal Digital Transformation Forum: Agile Development
 
Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2Evolving to Cloud-Native - Nate Schutta 2/2
Evolving to Cloud-Native - Nate Schutta 2/2
 
Blame DevOps: Shifting Left the Wrong Way
Blame DevOps: Shifting Left the Wrong WayBlame DevOps: Shifting Left the Wrong Way
Blame DevOps: Shifting Left the Wrong Way
 
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps successWinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
 
The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014
 
Agile project management anti patterns
Agile project management anti patterns Agile project management anti patterns
Agile project management anti patterns
 
Divide and conquer - Component based development with Mendix
Divide and conquer - Component based development with MendixDivide and conquer - Component based development with Mendix
Divide and conquer - Component based development with Mendix
 
Ditch Your Desktop! Lead Your Team into Cloud Computing! (presentation slides)
Ditch Your Desktop! Lead Your Team into Cloud Computing! (presentation slides)Ditch Your Desktop! Lead Your Team into Cloud Computing! (presentation slides)
Ditch Your Desktop! Lead Your Team into Cloud Computing! (presentation slides)
 
OSS Collaboration & Contribution: How Netflix Drives Industry Engagement
OSS Collaboration & Contribution: How Netflix Drives Industry EngagementOSS Collaboration & Contribution: How Netflix Drives Industry Engagement
OSS Collaboration & Contribution: How Netflix Drives Industry Engagement
 
Inside Atlassian: Focusing on Customer Outcomes in Spite of Complexity
Inside Atlassian: Focusing on Customer Outcomes in Spite of ComplexityInside Atlassian: Focusing on Customer Outcomes in Spite of Complexity
Inside Atlassian: Focusing on Customer Outcomes in Spite of Complexity
 
How to drive more value from Innovation Initiatives
 How to drive more value from Innovation Initiatives How to drive more value from Innovation Initiatives
How to drive more value from Innovation Initiatives
 
Cut the Digital Transformation Fluff: Creating Metrics That Matter
Cut the Digital Transformation Fluff: Creating Metrics That MatterCut the Digital Transformation Fluff: Creating Metrics That Matter
Cut the Digital Transformation Fluff: Creating Metrics That Matter
 
Pivotal Digital Transformation Forum: Requirements to Deliver Innovation to M...
Pivotal Digital Transformation Forum: Requirements to Deliver Innovation to M...Pivotal Digital Transformation Forum: Requirements to Deliver Innovation to M...
Pivotal Digital Transformation Forum: Requirements to Deliver Innovation to M...
 
Agile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native EcosystemAgile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native Ecosystem
 
Scaling IT Operations in a DevOps World
Scaling IT Operations in a DevOps WorldScaling IT Operations in a DevOps World
Scaling IT Operations in a DevOps World
 
Not actually a DevOps Talk
Not actually a DevOps TalkNot actually a DevOps Talk
Not actually a DevOps Talk
 
AWS Meetup: Career Day 2019 - Lightning Talk with Cloud Career Path: DevOps E...
AWS Meetup: Career Day 2019 - Lightning Talk with Cloud Career Path: DevOps E...AWS Meetup: Career Day 2019 - Lightning Talk with Cloud Career Path: DevOps E...
AWS Meetup: Career Day 2019 - Lightning Talk with Cloud Career Path: DevOps E...
 
Developer Marketing: Building Experiences
Developer Marketing: Building ExperiencesDeveloper Marketing: Building Experiences
Developer Marketing: Building Experiences
 
Not Actually a DevOps Talk, or, Beyond “Survival is Not Mandatory”
Not Actually a DevOps Talk, or, Beyond “Survival is Not Mandatory”Not Actually a DevOps Talk, or, Beyond “Survival is Not Mandatory”
Not Actually a DevOps Talk, or, Beyond “Survival is Not Mandatory”
 
Rewrite™ Cities: How Data and Tech-Driven Architecture Make Better Buildings
Rewrite™ Cities: How Data and Tech-Driven Architecture Make Better BuildingsRewrite™ Cities: How Data and Tech-Driven Architecture Make Better Buildings
Rewrite™ Cities: How Data and Tech-Driven Architecture Make Better Buildings
 

Similar to Drinking from the Stream: How to Use Messaging Platforms for Scalability & Performance - Mark Heckler 2019

How To Get A Blockchain Job?
How To Get A Blockchain Job?How To Get A Blockchain Job?
How To Get A Blockchain Job?
101 Blockchains
 
How To Become A Blockchain Engineer
How To Become A Blockchain EngineerHow To Become A Blockchain Engineer
How To Become A Blockchain Engineer
101 Blockchains
 
John N. Lewis - Resume - Public
John N. Lewis - Resume - Public John N. Lewis - Resume - Public
John N. Lewis - Resume - Public
John N. Lewis
 
Sql server 2008_replication_technical_case_study
Sql server 2008_replication_technical_case_studySql server 2008_replication_technical_case_study
Sql server 2008_replication_technical_case_study
Klaudiia Jacome
 

Similar to Drinking from the Stream: How to Use Messaging Platforms for Scalability & Performance - Mark Heckler 2019 (20)

Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
 
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
 
Integrating Machine Learning Capabilities into your team
Integrating Machine Learning Capabilities into your teamIntegrating Machine Learning Capabilities into your team
Integrating Machine Learning Capabilities into your team
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Bridging Front.pdf
Bridging Front.pdfBridging Front.pdf
Bridging Front.pdf
 
Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development Lifecycle
 
A pattern language for microservices (melbourne)
A pattern language for microservices (melbourne)A pattern language for microservices (melbourne)
A pattern language for microservices (melbourne)
 
Docs are everyone's business - Alex Radu - sunhacks
Docs are everyone's business - Alex Radu - sunhacks Docs are everyone's business - Alex Radu - sunhacks
Docs are everyone's business - Alex Radu - sunhacks
 
Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)
 
A pattern language for microservices
A pattern language for microservicesA pattern language for microservices
A pattern language for microservices
 
How To Get A Blockchain Job?
How To Get A Blockchain Job?How To Get A Blockchain Job?
How To Get A Blockchain Job?
 
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
 
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdfCLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
 
How To Become A Blockchain Engineer
How To Become A Blockchain EngineerHow To Become A Blockchain Engineer
How To Become A Blockchain Engineer
 
DevExForPlatformEngineers, introducing Kratix
DevExForPlatformEngineers, introducing KratixDevExForPlatformEngineers, introducing Kratix
DevExForPlatformEngineers, introducing Kratix
 
John N. Lewis - Resume - Public
John N. Lewis - Resume - Public John N. Lewis - Resume - Public
John N. Lewis - Resume - Public
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Sql server 2008_replication_technical_case_study
Sql server 2008_replication_technical_case_studySql server 2008_replication_technical_case_study
Sql server 2008_replication_technical_case_study
 
TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?
 

More from VMware Tanzu

More from VMware Tanzu (20)

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 

Recently uploaded

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 

Drinking from the Stream: How to Use Messaging Platforms for Scalability & Performance - Mark Heckler 2019