SlideShare a Scribd company logo
1 of 9
Download to read offline
mgray@pivotal.io ~ ❯❯❯ $ cat /etc/bootiful_reactive.m4v
Bootiful Reactive Testing & CDC w/ Spring Boot 2
mgray@pivotal.io ~ ❯❯❯ $ whoami
Name: Mario Gray
Role: Developer Advocate / Principal Technologist
Twitter: @mariogray
Code/Github: https://www.github.com/marios-code-path/bootiful-testing
Today’s Demo: “chi-07-10-19”
mgray@pivotal.io ~ ❯❯❯ $ history | xargs jobs
… more history ...
++++ Shameless Plugs
2011 write `cat ~/co-authors` “Pro Spring Integration”
2013 mv ~ la ; cat < /var/spool/jobs/NFL_Media > /dev/integrator
2015 cat /var/spool/jobs/MobCrush > /dev/microservices/video/stream
2017 cat /var/spool/jobs/pivotal > /dev/advocate
mgray@pivotal.io ❯❯❯ $ cat /etc/whats_next
Test Driven Development !
- Helps prevent Engineering Disease
Reactive ! (maybe some Kotlin!)
- Helps Flow Control and Async Logic - Kotlin is JVM dialect
Test Slices !
- Lightens Surface Area of Integration Tests
Spring Cloud Contracts !
- Makes Downstream Consumers Safe and Happy
mgray@pivotal.io ❯❯❯ $ cat /etc/tdd/bobmartin/laws
1. You are not allowed to write any production code
unless it is to make a failing unit test pass.
2. You are not allowed to write any more of a unit
test than is sufficient to fail; and compilation
failures are test failures.
3. You are not allowed to write any more production
code than is sufficient to pass the one failing unit
test.
mgray@pivotal.io ~ ❯❯❯ $ cat /etc/reactive/publisher/mono
Source: https://projectreactor.io/docs/core/snapshot/api/reactor/core/publisher/Mono.html
mgray@pivotal.io ~ ❯❯❯ $ cat /etc/reactive/publisher/flux
Source: https://projectreactor.io/docs/core/snapshot/api/reactor/core/publisher/Flux.html
Demo Time!
(Reactive Data, Web, then CDC)
mgray@pivotal.io ~ ❯❯❯ $ cat /etc/issue
Say Hello to / / / (Plus the other “usual suspects”)
mgray@pivotal.io ~ ❯❯❯ $ exit
This talk is shutting down in 60 seconds.
Link to this talk: https://www.github.com/marios-code-path/bootiful-testing
BLOG: http://www.sudoinit5.com
WIP: http://www.github.com/marios-code-path/demo-chat
Thanks!
Questions?
Here are some helpful learning resources:
https://github.com/reactor/reactor-ipc/blob/master/src/docs/asciidoc/net.adoc
https://github.com/reactive-ipc/reactive-ipc-jvm
http://www.reactive-streams.org
https://cloud.spring.io/spring-cloud-contract/multi/multi__spring_cloud_contract_verifier_introduction.html
https://martinfowler.com/articles/201701-event-driven.html
http://jonasboner.com/foreword-reactive-design-patterns
https://projectreactor.io/docs/core/snapshot/api
(Marble Diagram Blog POST by: James Shvarts )
https://medium.com/@jshvarts/read-marble-diagrams-like-a-pro-3d72934d3ef5
https://github.com/mkheck/FSRx
(R2DBC!: https://github.com/mkheck/getting-started-r2dbc)

More Related Content

What's hot

JavaScript and Internet Controlled Hardware Prototyping (Now with more Node G...
JavaScript and Internet Controlled Hardware Prototyping (Now with more Node G...JavaScript and Internet Controlled Hardware Prototyping (Now with more Node G...
JavaScript and Internet Controlled Hardware Prototyping (Now with more Node G...Jonathan LeBlanc
 
Play framework 2.0 Introduction
Play framework 2.0 IntroductionPlay framework 2.0 Introduction
Play framework 2.0 Introductionjorgen99
 
広がりを見せるAndroidプラットフォーム
広がりを見せるAndroidプラットフォーム広がりを見せるAndroidプラットフォーム
広がりを見せるAndroidプラットフォームShoichi Matsuda
 
MET 402 (Notes)-Casting videos
MET 402 (Notes)-Casting videosMET 402 (Notes)-Casting videos
MET 402 (Notes)-Casting videosIbrahim AboKhalil
 
Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Alistair McKinnell
 
Git Workflow Practice
Git Workflow PracticeGit Workflow Practice
Git Workflow PracticeAndy Wang
 
Onlive lessons learned
Onlive lessons learnedOnlive lessons learned
Onlive lessons learnedgregretkowski
 
SXSW 2014: Telling the NSA to [Back] Off
SXSW 2014: Telling the NSA to [Back] OffSXSW 2014: Telling the NSA to [Back] Off
SXSW 2014: Telling the NSA to [Back] Offdotrights
 
TWISummit 2019 - A Journey on XR
TWISummit 2019 - A Journey on XRTWISummit 2019 - A Journey on XR
TWISummit 2019 - A Journey on XRThoughtworks
 
html5 & phonegap
html5 & phonegaphtml5 & phonegap
html5 & phonegapCaesar Chi
 
Feature flags, a/b testing, canary amd split traffic ~ hail new agile po
Feature flags, a/b testing, canary amd split traffic ~ hail new agile poFeature flags, a/b testing, canary amd split traffic ~ hail new agile po
Feature flags, a/b testing, canary amd split traffic ~ hail new agile poDiego Pacheco
 

What's hot (12)

JavaScript and Internet Controlled Hardware Prototyping (Now with more Node G...
JavaScript and Internet Controlled Hardware Prototyping (Now with more Node G...JavaScript and Internet Controlled Hardware Prototyping (Now with more Node G...
JavaScript and Internet Controlled Hardware Prototyping (Now with more Node G...
 
Play framework 2.0 Introduction
Play framework 2.0 IntroductionPlay framework 2.0 Introduction
Play framework 2.0 Introduction
 
Swt J Face 3/3
Swt J Face 3/3Swt J Face 3/3
Swt J Face 3/3
 
広がりを見せるAndroidプラットフォーム
広がりを見せるAndroidプラットフォーム広がりを見せるAndroidプラットフォーム
広がりを見せるAndroidプラットフォーム
 
MET 402 (Notes)-Casting videos
MET 402 (Notes)-Casting videosMET 402 (Notes)-Casting videos
MET 402 (Notes)-Casting videos
 
Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011
 
Git Workflow Practice
Git Workflow PracticeGit Workflow Practice
Git Workflow Practice
 
Onlive lessons learned
Onlive lessons learnedOnlive lessons learned
Onlive lessons learned
 
SXSW 2014: Telling the NSA to [Back] Off
SXSW 2014: Telling the NSA to [Back] OffSXSW 2014: Telling the NSA to [Back] Off
SXSW 2014: Telling the NSA to [Back] Off
 
TWISummit 2019 - A Journey on XR
TWISummit 2019 - A Journey on XRTWISummit 2019 - A Journey on XR
TWISummit 2019 - A Journey on XR
 
html5 & phonegap
html5 & phonegaphtml5 & phonegap
html5 & phonegap
 
Feature flags, a/b testing, canary amd split traffic ~ hail new agile po
Feature flags, a/b testing, canary amd split traffic ~ hail new agile poFeature flags, a/b testing, canary amd split traffic ~ hail new agile po
Feature flags, a/b testing, canary amd split traffic ~ hail new agile po
 

Similar to Bootiful Reactive Testing - Mario Gray

Bootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayBootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayVMware Tanzu
 
Bootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayBootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayVMware Tanzu
 
Bootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario GrayBootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario GrayVMware Tanzu
 
Bootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayBootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayVMware Tanzu
 
Souders WPO Web2.0Expo
Souders WPO Web2.0ExpoSouders WPO Web2.0Expo
Souders WPO Web2.0Expoguest0b3d92d
 
Souders WPO Web 2.0 Expo
Souders WPO Web 2.0 ExpoSouders WPO Web 2.0 Expo
Souders WPO Web 2.0 ExpoSteve Souders
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLabValerio Cosentino
 
Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要William Yeh
 
It's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right NowIt's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right NowKen Mugrage
 
Introduction to PWAs & New JS Frameworks for Mobile
Introduction to PWAs & New JS Frameworks for MobileIntroduction to PWAs & New JS Frameworks for Mobile
Introduction to PWAs & New JS Frameworks for MobileMobileMoxie
 
git commit -m "carreira"
git commit -m "carreira"git commit -m "carreira"
git commit -m "carreira"Lucas Andrey
 
Spring boot 3g
Spring boot 3gSpring boot 3g
Spring boot 3gvasya10
 
WebDev References
WebDev ReferencesWebDev References
WebDev Referencesdynamis
 
Expert Days: The VP R&D Open Seminar: Project Management
Expert Days: The VP R&D Open Seminar: Project ManagementExpert Days: The VP R&D Open Seminar: Project Management
Expert Days: The VP R&D Open Seminar: Project ManagementMoshe Kaplan
 
Real-World Objects Interaction with Unconstrained Spoken Language Instructions
Real-World Objects Interaction  with Unconstrained Spoken Language InstructionsReal-World Objects Interaction  with Unconstrained Spoken Language Instructions
Real-World Objects Interaction with Unconstrained Spoken Language InstructionsKuniyuki Takahashi
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSPablo Godel
 
Go - Where it's going and why you should pay attention.
Go - Where it's going and why you should pay attention.Go - Where it's going and why you should pay attention.
Go - Where it's going and why you should pay attention.Aaron Schlesinger
 
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Alina Vilk
 

Similar to Bootiful Reactive Testing - Mario Gray (20)

Bootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayBootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario Gray
 
Bootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayBootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario Gray
 
Bootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario GrayBootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario Gray
 
Bootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario GrayBootiful Reactive Testing - Mario Gray
Bootiful Reactive Testing - Mario Gray
 
Souders WPO Web2.0Expo
Souders WPO Web2.0ExpoSouders WPO Web2.0Expo
Souders WPO Web2.0Expo
 
Souders WPO Web 2.0 Expo
Souders WPO Web 2.0 ExpoSouders WPO Web 2.0 Expo
Souders WPO Web 2.0 Expo
 
Measuring Software development with GrimoireLab
Measuring Software development with GrimoireLabMeasuring Software development with GrimoireLab
Measuring Software development with GrimoireLab
 
Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要Next ’19 的 Istio 場次 重點摘要
Next ’19 的 Istio 場次 重點摘要
 
It's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right NowIt's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right Now
 
Introduction to PWAs & New JS Frameworks for Mobile
Introduction to PWAs & New JS Frameworks for MobileIntroduction to PWAs & New JS Frameworks for Mobile
Introduction to PWAs & New JS Frameworks for Mobile
 
ChainerUI v0.2, v0.3
ChainerUI v0.2, v0.3ChainerUI v0.2, v0.3
ChainerUI v0.2, v0.3
 
git commit -m "carreira"
git commit -m "carreira"git commit -m "carreira"
git commit -m "carreira"
 
Spring boot 3g
Spring boot 3gSpring boot 3g
Spring boot 3g
 
WebDev References
WebDev ReferencesWebDev References
WebDev References
 
Expert Days: The VP R&D Open Seminar: Project Management
Expert Days: The VP R&D Open Seminar: Project ManagementExpert Days: The VP R&D Open Seminar: Project Management
Expert Days: The VP R&D Open Seminar: Project Management
 
Real-World Objects Interaction with Unconstrained Spoken Language Instructions
Real-World Objects Interaction  with Unconstrained Spoken Language InstructionsReal-World Objects Interaction  with Unconstrained Spoken Language Instructions
Real-World Objects Interaction with Unconstrained Spoken Language Instructions
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJS
 
Go - Where it's going and why you should pay attention.
Go - Where it's going and why you should pay attention.Go - Where it's going and why you should pay attention.
Go - Where it's going and why you should pay attention.
 
聊聊測試左移
聊聊測試左移聊聊測試左移
聊聊測試左移
 
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
 

More from VMware Tanzu

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 ItVMware Tanzu
 
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 2023VMware Tanzu
 
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 ScaleVMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
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 ProductVMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
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.pdfVMware Tanzu
 
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 2023VMware Tanzu
 
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 2023VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
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 2023VMware Tanzu
 
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 BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
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 PracticeVMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsVMware Tanzu
 

More from VMware Tanzu (20)

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
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

Bootiful Reactive Testing - Mario Gray

  • 1. mgray@pivotal.io ~ ❯❯❯ $ cat /etc/bootiful_reactive.m4v Bootiful Reactive Testing & CDC w/ Spring Boot 2 mgray@pivotal.io ~ ❯❯❯ $ whoami Name: Mario Gray Role: Developer Advocate / Principal Technologist Twitter: @mariogray Code/Github: https://www.github.com/marios-code-path/bootiful-testing Today’s Demo: “chi-07-10-19” mgray@pivotal.io ~ ❯❯❯ $ history | xargs jobs … more history ... ++++ Shameless Plugs 2011 write `cat ~/co-authors` “Pro Spring Integration” 2013 mv ~ la ; cat < /var/spool/jobs/NFL_Media > /dev/integrator 2015 cat /var/spool/jobs/MobCrush > /dev/microservices/video/stream 2017 cat /var/spool/jobs/pivotal > /dev/advocate
  • 2. mgray@pivotal.io ❯❯❯ $ cat /etc/whats_next Test Driven Development ! - Helps prevent Engineering Disease Reactive ! (maybe some Kotlin!) - Helps Flow Control and Async Logic - Kotlin is JVM dialect Test Slices ! - Lightens Surface Area of Integration Tests Spring Cloud Contracts ! - Makes Downstream Consumers Safe and Happy
  • 3. mgray@pivotal.io ❯❯❯ $ cat /etc/tdd/bobmartin/laws 1. You are not allowed to write any production code unless it is to make a failing unit test pass. 2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are test failures. 3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
  • 4. mgray@pivotal.io ~ ❯❯❯ $ cat /etc/reactive/publisher/mono Source: https://projectreactor.io/docs/core/snapshot/api/reactor/core/publisher/Mono.html
  • 5. mgray@pivotal.io ~ ❯❯❯ $ cat /etc/reactive/publisher/flux Source: https://projectreactor.io/docs/core/snapshot/api/reactor/core/publisher/Flux.html
  • 6. Demo Time! (Reactive Data, Web, then CDC)
  • 7. mgray@pivotal.io ~ ❯❯❯ $ cat /etc/issue Say Hello to / / / (Plus the other “usual suspects”)
  • 8. mgray@pivotal.io ~ ❯❯❯ $ exit This talk is shutting down in 60 seconds. Link to this talk: https://www.github.com/marios-code-path/bootiful-testing BLOG: http://www.sudoinit5.com WIP: http://www.github.com/marios-code-path/demo-chat Thanks!
  • 9. Questions? Here are some helpful learning resources: https://github.com/reactor/reactor-ipc/blob/master/src/docs/asciidoc/net.adoc https://github.com/reactive-ipc/reactive-ipc-jvm http://www.reactive-streams.org https://cloud.spring.io/spring-cloud-contract/multi/multi__spring_cloud_contract_verifier_introduction.html https://martinfowler.com/articles/201701-event-driven.html http://jonasboner.com/foreword-reactive-design-patterns https://projectreactor.io/docs/core/snapshot/api (Marble Diagram Blog POST by: James Shvarts ) https://medium.com/@jshvarts/read-marble-diagrams-like-a-pro-3d72934d3ef5 https://github.com/mkheck/FSRx (R2DBC!: https://github.com/mkheck/getting-started-r2dbc)