SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
© Copyright 2018 Pivotal Software, Inc. All rights Reserved. Version 1.0
Cornelia Davis
Sr. Director of Technology, Pivotal
@cdavisafc
February 2018
It’s not Just Request/Response:
Understanding Event-driven Microservices
Where we’re
going today
Familiar Event-driven Scenarios
Usual Microservices Architectures
Autonomy
Event-driven Microservices Architectures
Event-sourcing
Cover w/ Image
Me?
Developer (wasn’t Ops)
Web architectures for >10 years
Cloud-native for 5+ years
Cloud Foundry for 5+ years
https://www.manning.com/books/cloud-native
@cdavisafc
Event-driven
Scenarios
The ones we readily think of
…. this is not what I want to talk about today
…usually
Request/Response
Instead, I want to talk about the implementations that are…
Microservices
Usually Request/Response
The Microservices Death-star
Assumption:
Each microservice
boasts 99.999%
availability
(and there are
100 of them)
Assumption:
The network is
reliable
Result:
Home Page
achieves
99.9%
availability
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
How we try to add a level of resilience:
Retries
▸ Client must consider failure
▸ Decide on fall-back
behavior
▸ Likely including retries
▸ But then we need to handle
downstream consequences of
these (retry) behaviors
CLIENT
SERVICE
Timeouts?
If we don’t hear back,
try again
Circuit Breakers
▸ This is your protection against
DDOSing yourself
https://martinfowler.com/bliki/CircuitBreaker.htmlhttps://martinfowler.com/bliki/CircuitBreaker.html
But then, is stale data better than no data - often it is
▸ Client must consider failure
▸ Decide on fall-back
behavior
▸ Likely including caches
▸ But then we need to handle
things like cache expiry
SERVICE
APP
SERVICE
APP
APP
SERVICE
APP
SERVICE
APP
SERVICE
APP
But all of these patterns make the assumption of Request/Response
I want to challenge that base assumption
Autonomy
It’s not the size of a “micro”service,
but rather its autonomy
µService
Client
µService
! response
" request
Request/Response
µService
! outcome" event
Event-driven
Event-driven
Microservices
!
"
#
$
%
&
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Response
Response
Response
Request
Request
Request
Connections
API
User:
- id
- username
- name
Connections:
- id
- follower
- followed
Posts
API
Posts:
- id
- date
- userId
- title
- body
Starting with the familiar
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
User:
- id
- username
- name
Connections:
- id
- follower
- followed
Posts:
- id
- date
- userId
- title
- body
Turning that on its head
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
User:
- id
- username
- name
Connections:
- id
- follower
- followed
Posts:
- id
- date
- userId
- title
- body
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
User:
- id
- username
- name
Connections:
- id
- follower
- followed
Posts:
- id
- date
- userId
- title
- body
Response
Request
When the request comes in, the
Connections’ Post service
already has the answer!
Connection’s
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
User:
- id
- username
- name
Connections:
- id
- follower
- followed
Posts:
- id
- date
- userId
- title
- body
Posts:
- userId
- date
- title
Response
Request
Connections:
- id
- follower
- followed
User:
- id
- username
- name
µService
New from Connections
! response
" request ! outcome " event
Request/Response Event-driven
µService
Client
µService
Posts
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
Response
Request
Whenever something changes in the network of user
connections, the “Connections” API broadcasts the change
event - any interested parties (including the “Connections’
Posts” API) can do with they wish
Whenever new posts are available, the “Posts” API
broadcasts the change event - any interested parties
(including the “Connections’ Posts” API) can do with it
they wish
The New from Connections microservice
handles events as they occur.
Javascript in the browser makes HTTP request to
the “New from Network” API, providing a userID.
While the response may be expected
asynchronously, the API protocol is request/
response. The “Connections’ Posts” API can
respond immediately because it already knows
about the state of the data it is responsible for.
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
Response
Request
Whenever something changes in the network of user
connections, the “Connections” API broadcasts the change
event - any interested parties (including the “Connections’
Posts” API) can do with they wish
1
Whenever new posts are available, the “Posts” API
broadcasts the change event - any interested parties
(including the “Connections’ Posts” API) can do with it
they wish
1
1 The New from Connections microservice
handles events as they occur.
Javascript in the browser makes HTTP request to
the “New from Network” API, providing a userID.
While the response may be expected
asynchronously, the API protocol is request/
response. The “Connections’ Posts” API can
respond immediately because it already knows
about the state of the data it is responsible for.
1
2
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
Response
Request
Whenever something changes in the network of user
connections, the “Connections” API broadcasts the change
event - any interested parties (including the “Connections’
Posts” API) can do with they wish
1
Whenever new posts are available, the “Posts” API
broadcasts the change event - any interested parties
(including the “Connections’ Posts” API) can do with it
they wish
1
1 The New from Connections microservice
handles events as they occur.
Javascript in the browser makes HTTP request to
the “New from Network” API, providing a userID.
While the response may be expected
asynchronously, the API protocol is request/
response. The “Connections’ Posts” API can
respond immediately because it already knows
about the state of the data it is responsible for.
1
2
Independent Control Loops!!!
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
Response
Request
Whenever something changes in the network of user
connections, the “Connections” API broadcasts the change
event - any interested parties (including the “Connections’
Posts” API) can do with they wish
1
Whenever new posts are available, the “Posts” API
broadcasts the change event - any interested parties
(including the “Connections’ Posts” API) can do with it
they wish
1
1 The New from Connections microservice
handles events as they occur.
Javascript in the browser makes HTTP request to
the “New from Network” API, providing a userID.
While the response may be expected
asynchronously, the API protocol is request/
response. The “Connections’ Posts” API can
respond immediately because it already knows
about the state of the data it is responsible for.
1
2
Connections’
Posts
API
Response
Request
1 The New from Connections microservice
handles events as they occur.
2
1
What, then, is the developer writing?
Connections’
Posts
API
Response
Request 1 The New from Connections microservice
handles events as they occur.
2
1
What, then, is the developer writing?
Connections’
Posts
API
Response
Request 1 The New from Connections microservice
handles events as they occur.
2
1
What, then, is the developer writing?
Connections’
Posts
API
Response
Request 1 The New from Connections microservice
handles events as they occur.
2
1
We just derived the CQRS pattern!
CQRS = Command Query
Responsibility Segregation
Handling Queries
Handling Commands
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
Response
Request
1
1
1
1
2
µService
Event
Consumer
µService
Event
Producer
event store
… …
The Event Store Decouples the Microservices
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
Response
Request
1
1
1
1
2
event store
… …
Connections’
Posts
API
Abundant Sunshine
Your source for healthy cooking
New From Your
Network
Seasonal
Connections
API
Posts
API
Response
Request
1
1
1
1
2
event store
… …
Summary
Imperative programming model not ideal for
distributed systems → functional models better
Event-driven architectures bring autonomy
→ Independent control loops
Microservices have their own data stores
Retries, Circuit-breakers and cache with expiry are
replaced by CQRS programming patterns
Events-stores are the “message busses” of the event-
driven approach
Transforming How The World Builds Software
© Copyright 2017 Pivotal Software, Inc. All rights Reserved.
Cover w/ Image
https://www.manning.com/books/cloud-native
@cdavisafc
All of this is described, with code
samples, in chapter 4
(available through MEAP)

Más contenido relacionado

La actualidad más candente

Building CI/CD Pipelines for Serverless Applications
Building CI/CD Pipelines for Serverless ApplicationsBuilding CI/CD Pipelines for Serverless Applications
Building CI/CD Pipelines for Serverless ApplicationsAmazon Web Services
 
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...Amazon Web Services
 
Microservices: What's Missing - O'Reilly Software Architecture New York
Microservices: What's Missing - O'Reilly Software Architecture New YorkMicroservices: What's Missing - O'Reilly Software Architecture New York
Microservices: What's Missing - O'Reilly Software Architecture New YorkAdrian Cockcroft
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryMikhail Prudnikov
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Amazon Web Services
 
Building a CI/CD Pipeline For Container Deployment to Amazon ECS
Building a CI/CD Pipeline For Container Deployment to Amazon ECSBuilding a CI/CD Pipeline For Container Deployment to Amazon ECS
Building a CI/CD Pipeline For Container Deployment to Amazon ECSAmazon Web Services
 
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...TriNimbus
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
Flowcon (added to for CMG) Keynote talk on how Speed Wins and how Netflix is ...
Flowcon (added to for CMG) Keynote talk on how Speed Wins and how Netflix is ...Flowcon (added to for CMG) Keynote talk on how Speed Wins and how Netflix is ...
Flowcon (added to for CMG) Keynote talk on how Speed Wins and how Netflix is ...Adrian Cockcroft
 
Automated Governance of Your AWS Resources
Automated Governance of Your AWS ResourcesAutomated Governance of Your AWS Resources
Automated Governance of Your AWS ResourcesAmazon Web Services
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesAmazon Web Services
 
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...Amazon Web Services
 
Handling Asynchronous Workloads With OpenShift and Iron.io
Handling Asynchronous Workloads With OpenShift and Iron.ioHandling Asynchronous Workloads With OpenShift and Iron.io
Handling Asynchronous Workloads With OpenShift and Iron.ioIvan Dwyer
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Amazon Web Services
 
Getting Started With Docker on AWS
Getting Started With Docker on AWSGetting Started With Docker on AWS
Getting Started With Docker on AWSMikhail Prudnikov
 
Scaling Gilt: from monolith ruby app to micro service scala service architecture
Scaling Gilt: from monolith ruby app to micro service scala service architectureScaling Gilt: from monolith ruby app to micro service scala service architecture
Scaling Gilt: from monolith ruby app to micro service scala service architectureGilt Tech Talks
 
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian
 
Evolution of Microservices - Craft Conference
Evolution of Microservices - Craft ConferenceEvolution of Microservices - Craft Conference
Evolution of Microservices - Craft ConferenceAdrian Cockcroft
 

La actualidad más candente (20)

Building CI/CD Pipelines for Serverless Applications
Building CI/CD Pipelines for Serverless ApplicationsBuilding CI/CD Pipelines for Serverless Applications
Building CI/CD Pipelines for Serverless Applications
 
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
 
Microservices: What's Missing - O'Reilly Software Architecture New York
Microservices: What's Missing - O'Reilly Software Architecture New YorkMicroservices: What's Missing - O'Reilly Software Architecture New York
Microservices: What's Missing - O'Reilly Software Architecture New York
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous Delivery
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Docker for Mac
Docker for MacDocker for Mac
Docker for Mac
 
Building a CI/CD Pipeline For Container Deployment to Amazon ECS
Building a CI/CD Pipeline For Container Deployment to Amazon ECSBuilding a CI/CD Pipeline For Container Deployment to Amazon ECS
Building a CI/CD Pipeline For Container Deployment to Amazon ECS
 
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
Flowcon (added to for CMG) Keynote talk on how Speed Wins and how Netflix is ...
Flowcon (added to for CMG) Keynote talk on how Speed Wins and how Netflix is ...Flowcon (added to for CMG) Keynote talk on how Speed Wins and how Netflix is ...
Flowcon (added to for CMG) Keynote talk on how Speed Wins and how Netflix is ...
 
Automated Governance of Your AWS Resources
Automated Governance of Your AWS ResourcesAutomated Governance of Your AWS Resources
Automated Governance of Your AWS Resources
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
 
Handling Asynchronous Workloads With OpenShift and Iron.io
Handling Asynchronous Workloads With OpenShift and Iron.ioHandling Asynchronous Workloads With OpenShift and Iron.io
Handling Asynchronous Workloads With OpenShift and Iron.io
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Getting Started With Docker on AWS
Getting Started With Docker on AWSGetting Started With Docker on AWS
Getting Started With Docker on AWS
 
Scaling Gilt: from monolith ruby app to micro service scala service architecture
Scaling Gilt: from monolith ruby app to micro service scala service architectureScaling Gilt: from monolith ruby app to micro service scala service architecture
Scaling Gilt: from monolith ruby app to micro service scala service architecture
 
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
 
Evolution of Microservices - Craft Conference
Evolution of Microservices - Craft ConferenceEvolution of Microservices - Craft Conference
Evolution of Microservices - Craft Conference
 

Similar a It’s Not Just Request/Response: Understanding Event-driven Microservices

Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele PecorariMobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele PecorariOlivier DASINI
 
Microservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with KafkaMicroservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with KafkaVMware Tanzu
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncYan Cui
 
Picos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPicos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPhil Windley
 
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)Steven Willmott
 
DevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopDevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopTessa Mero
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsDynatrace
 
Service workers and their role in PWAs
Service workers and their role in PWAsService workers and their role in PWAs
Service workers and their role in PWAsIpsha Bhidonia
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
Behind the scenes of Real-Time Notifications
Behind the scenes of Real-Time NotificationsBehind the scenes of Real-Time Notifications
Behind the scenes of Real-Time NotificationsGuillermo Mansilla
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIsSmartBear
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to APIrajnishjha29
 
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event BridgeKomunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event BridgeThe Software House
 
Reactive APIs using Muon: for muCon 2017
Reactive APIs using Muon: for muCon 2017Reactive APIs using Muon: for muCon 2017
Reactive APIs using Muon: for muCon 2017David Dawson
 
API Security - Null meet
API Security - Null meetAPI Security - Null meet
API Security - Null meetvinoth kumar
 

Similar a It’s Not Just Request/Response: Understanding Event-driven Microservices (20)

Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele PecorariMobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
 
Microservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with KafkaMicroservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with Kafka
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSync
 
Picos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPicos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting Things
 
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
 
DevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopDevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot Workshop
 
Meteor Introduction - Ashish
Meteor Introduction - AshishMeteor Introduction - Ashish
Meteor Introduction - Ashish
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
Selenium for Jobseekers
Selenium for JobseekersSelenium for Jobseekers
Selenium for Jobseekers
 
Service workers and their role in PWAs
Service workers and their role in PWAsService workers and their role in PWAs
Service workers and their role in PWAs
 
API World Conference
API World ConferenceAPI World Conference
API World Conference
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Behind the scenes of Real-Time Notifications
Behind the scenes of Real-Time NotificationsBehind the scenes of Real-Time Notifications
Behind the scenes of Real-Time Notifications
 
Api_testing.pdf
Api_testing.pdfApi_testing.pdf
Api_testing.pdf
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIs
 
Webhooks
WebhooksWebhooks
Webhooks
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to API
 
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event BridgeKomunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
 
Reactive APIs using Muon: for muCon 2017
Reactive APIs using Muon: for muCon 2017Reactive APIs using Muon: for muCon 2017
Reactive APIs using Muon: for muCon 2017
 
API Security - Null meet
API Security - Null meetAPI Security - Null meet
API Security - Null meet
 

Más de cornelia davis

You Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer NowYou Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer Nowcornelia davis
 
Kubernetes: one cluster or many
Kubernetes:  one cluster or many Kubernetes:  one cluster or many
Kubernetes: one cluster or many cornelia davis
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetupcornelia davis
 
Cloud Native Architectures for Devops
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devopscornelia davis
 
Cloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant SoftwareCloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant Softwarecornelia davis
 
Devops: Who Does What? - Devops Enterprise Summit 2016
Devops: Who Does What? - Devops Enterprise Summit 2016Devops: Who Does What? - Devops Enterprise Summit 2016
Devops: Who Does What? - Devops Enterprise Summit 2016cornelia davis
 
Velocity NY 2016 - Devops: Who Does What?
Velocity NY 2016 - Devops: Who Does What?Velocity NY 2016 - Devops: Who Does What?
Velocity NY 2016 - Devops: Who Does What?cornelia davis
 
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...cornelia davis
 
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a PlatformLinux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a Platformcornelia davis
 
Devops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational RolesDevops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational Rolescornelia davis
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...cornelia davis
 
Removing Barriers Between Dev and Ops
Removing Barriers Between Dev and OpsRemoving Barriers Between Dev and Ops
Removing Barriers Between Dev and Opscornelia davis
 
Declarative Infrastructure with Cloud Foundry BOSH
Declarative Infrastructure with Cloud Foundry BOSHDeclarative Infrastructure with Cloud Foundry BOSH
Declarative Infrastructure with Cloud Foundry BOSHcornelia davis
 
Cloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and moreCloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and morecornelia davis
 
Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015cornelia davis
 
Competing with Software: It Takes a Platform -- Devops @ EMC World
Competing with Software: It Takes a Platform -- Devops @ EMC WorldCompeting with Software: It Takes a Platform -- Devops @ EMC World
Competing with Software: It Takes a Platform -- Devops @ EMC Worldcornelia davis
 
Pivotal Cloud Platform Roadshow Keynote
Pivotal Cloud Platform Roadshow KeynotePivotal Cloud Platform Roadshow Keynote
Pivotal Cloud Platform Roadshow Keynotecornelia davis
 
Evolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial ToneEvolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial Tonecornelia davis
 
Software Quality in the Devops World: The Impact of Continuous Delivery on Te...
Software Quality in the Devops World: The Impact of Continuous Delivery on Te...Software Quality in the Devops World: The Impact of Continuous Delivery on Te...
Software Quality in the Devops World: The Impact of Continuous Delivery on Te...cornelia davis
 
Cloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
Cloud Foundry Introduction (w Demo) at Silicon Valley Code CampCloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
Cloud Foundry Introduction (w Demo) at Silicon Valley Code Campcornelia davis
 

Más de cornelia davis (20)

You Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer NowYou Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer Now
 
Kubernetes: one cluster or many
Kubernetes:  one cluster or many Kubernetes:  one cluster or many
Kubernetes: one cluster or many
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
 
Cloud Native Architectures for Devops
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devops
 
Cloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant SoftwareCloud Native: Designing Change-tolerant Software
Cloud Native: Designing Change-tolerant Software
 
Devops: Who Does What? - Devops Enterprise Summit 2016
Devops: Who Does What? - Devops Enterprise Summit 2016Devops: Who Does What? - Devops Enterprise Summit 2016
Devops: Who Does What? - Devops Enterprise Summit 2016
 
Velocity NY 2016 - Devops: Who Does What?
Velocity NY 2016 - Devops: Who Does What?Velocity NY 2016 - Devops: Who Does What?
Velocity NY 2016 - Devops: Who Does What?
 
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
 
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a PlatformLinux Collaboration Summit Keynote: Transformation: It Takes a Platform
Linux Collaboration Summit Keynote: Transformation: It Takes a Platform
 
Devops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational RolesDevops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational Roles
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
 
Removing Barriers Between Dev and Ops
Removing Barriers Between Dev and OpsRemoving Barriers Between Dev and Ops
Removing Barriers Between Dev and Ops
 
Declarative Infrastructure with Cloud Foundry BOSH
Declarative Infrastructure with Cloud Foundry BOSHDeclarative Infrastructure with Cloud Foundry BOSH
Declarative Infrastructure with Cloud Foundry BOSH
 
Cloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and moreCloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and more
 
Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015Cloud Foundry Platform Operations - CF Summit 2015
Cloud Foundry Platform Operations - CF Summit 2015
 
Competing with Software: It Takes a Platform -- Devops @ EMC World
Competing with Software: It Takes a Platform -- Devops @ EMC WorldCompeting with Software: It Takes a Platform -- Devops @ EMC World
Competing with Software: It Takes a Platform -- Devops @ EMC World
 
Pivotal Cloud Platform Roadshow Keynote
Pivotal Cloud Platform Roadshow KeynotePivotal Cloud Platform Roadshow Keynote
Pivotal Cloud Platform Roadshow Keynote
 
Evolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial ToneEvolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial Tone
 
Software Quality in the Devops World: The Impact of Continuous Delivery on Te...
Software Quality in the Devops World: The Impact of Continuous Delivery on Te...Software Quality in the Devops World: The Impact of Continuous Delivery on Te...
Software Quality in the Devops World: The Impact of Continuous Delivery on Te...
 
Cloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
Cloud Foundry Introduction (w Demo) at Silicon Valley Code CampCloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
Cloud Foundry Introduction (w Demo) at Silicon Valley Code Camp
 

Último

Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxSasikiranMarri
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 

Último (20)

Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 

It’s Not Just Request/Response: Understanding Event-driven Microservices

  • 1. © Copyright 2018 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cornelia Davis Sr. Director of Technology, Pivotal @cdavisafc February 2018 It’s not Just Request/Response: Understanding Event-driven Microservices
  • 2. Where we’re going today Familiar Event-driven Scenarios Usual Microservices Architectures Autonomy Event-driven Microservices Architectures Event-sourcing
  • 3. Cover w/ Image Me? Developer (wasn’t Ops) Web architectures for >10 years Cloud-native for 5+ years Cloud Foundry for 5+ years https://www.manning.com/books/cloud-native @cdavisafc
  • 4. Event-driven Scenarios The ones we readily think of …. this is not what I want to talk about today
  • 5. …usually Request/Response Instead, I want to talk about the implementations that are…
  • 8. Assumption: Each microservice boasts 99.999% availability (and there are 100 of them) Assumption: The network is reliable Result: Home Page achieves 99.9% availability https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
  • 9. How we try to add a level of resilience:
  • 10. Retries ▸ Client must consider failure ▸ Decide on fall-back behavior ▸ Likely including retries ▸ But then we need to handle downstream consequences of these (retry) behaviors CLIENT SERVICE Timeouts? If we don’t hear back, try again
  • 11. Circuit Breakers ▸ This is your protection against DDOSing yourself https://martinfowler.com/bliki/CircuitBreaker.htmlhttps://martinfowler.com/bliki/CircuitBreaker.html
  • 12. But then, is stale data better than no data - often it is ▸ Client must consider failure ▸ Decide on fall-back behavior ▸ Likely including caches ▸ But then we need to handle things like cache expiry SERVICE APP SERVICE APP APP SERVICE APP SERVICE APP SERVICE APP
  • 13. But all of these patterns make the assumption of Request/Response I want to challenge that base assumption
  • 14. Autonomy It’s not the size of a “micro”service, but rather its autonomy µService Client µService ! response " request Request/Response µService ! outcome" event Event-driven
  • 16. ! " # $ % & Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Response Response Response Request Request Request Connections API User: - id - username - name Connections: - id - follower - followed Posts API Posts: - id - date - userId - title - body Starting with the familiar
  • 17. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API User: - id - username - name Connections: - id - follower - followed Posts: - id - date - userId - title - body Turning that on its head
  • 18. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API User: - id - username - name Connections: - id - follower - followed Posts: - id - date - userId - title - body
  • 19. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API User: - id - username - name Connections: - id - follower - followed Posts: - id - date - userId - title - body Response Request When the request comes in, the Connections’ Post service already has the answer!
  • 20. Connection’s Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API User: - id - username - name Connections: - id - follower - followed Posts: - id - date - userId - title - body Posts: - userId - date - title Response Request Connections: - id - follower - followed User: - id - username - name
  • 21. µService New from Connections ! response " request ! outcome " event Request/Response Event-driven µService Client µService Posts
  • 22. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API Response Request Whenever something changes in the network of user connections, the “Connections” API broadcasts the change event - any interested parties (including the “Connections’ Posts” API) can do with they wish Whenever new posts are available, the “Posts” API broadcasts the change event - any interested parties (including the “Connections’ Posts” API) can do with it they wish The New from Connections microservice handles events as they occur. Javascript in the browser makes HTTP request to the “New from Network” API, providing a userID. While the response may be expected asynchronously, the API protocol is request/ response. The “Connections’ Posts” API can respond immediately because it already knows about the state of the data it is responsible for.
  • 23. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API Response Request Whenever something changes in the network of user connections, the “Connections” API broadcasts the change event - any interested parties (including the “Connections’ Posts” API) can do with they wish 1 Whenever new posts are available, the “Posts” API broadcasts the change event - any interested parties (including the “Connections’ Posts” API) can do with it they wish 1 1 The New from Connections microservice handles events as they occur. Javascript in the browser makes HTTP request to the “New from Network” API, providing a userID. While the response may be expected asynchronously, the API protocol is request/ response. The “Connections’ Posts” API can respond immediately because it already knows about the state of the data it is responsible for. 1 2
  • 24. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API Response Request Whenever something changes in the network of user connections, the “Connections” API broadcasts the change event - any interested parties (including the “Connections’ Posts” API) can do with they wish 1 Whenever new posts are available, the “Posts” API broadcasts the change event - any interested parties (including the “Connections’ Posts” API) can do with it they wish 1 1 The New from Connections microservice handles events as they occur. Javascript in the browser makes HTTP request to the “New from Network” API, providing a userID. While the response may be expected asynchronously, the API protocol is request/ response. The “Connections’ Posts” API can respond immediately because it already knows about the state of the data it is responsible for. 1 2 Independent Control Loops!!!
  • 25. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API Response Request Whenever something changes in the network of user connections, the “Connections” API broadcasts the change event - any interested parties (including the “Connections’ Posts” API) can do with they wish 1 Whenever new posts are available, the “Posts” API broadcasts the change event - any interested parties (including the “Connections’ Posts” API) can do with it they wish 1 1 The New from Connections microservice handles events as they occur. Javascript in the browser makes HTTP request to the “New from Network” API, providing a userID. While the response may be expected asynchronously, the API protocol is request/ response. The “Connections’ Posts” API can respond immediately because it already knows about the state of the data it is responsible for. 1 2
  • 26. Connections’ Posts API Response Request 1 The New from Connections microservice handles events as they occur. 2 1 What, then, is the developer writing?
  • 27. Connections’ Posts API Response Request 1 The New from Connections microservice handles events as they occur. 2 1 What, then, is the developer writing?
  • 28. Connections’ Posts API Response Request 1 The New from Connections microservice handles events as they occur. 2 1 What, then, is the developer writing?
  • 29. Connections’ Posts API Response Request 1 The New from Connections microservice handles events as they occur. 2 1 We just derived the CQRS pattern! CQRS = Command Query Responsibility Segregation Handling Queries Handling Commands
  • 30. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API Response Request 1 1 1 1 2
  • 32. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API Response Request 1 1 1 1 2 event store … …
  • 33. Connections’ Posts API Abundant Sunshine Your source for healthy cooking New From Your Network Seasonal Connections API Posts API Response Request 1 1 1 1 2 event store … …
  • 34. Summary Imperative programming model not ideal for distributed systems → functional models better Event-driven architectures bring autonomy → Independent control loops Microservices have their own data stores Retries, Circuit-breakers and cache with expiry are replaced by CQRS programming patterns Events-stores are the “message busses” of the event- driven approach
  • 35. Transforming How The World Builds Software © Copyright 2017 Pivotal Software, Inc. All rights Reserved.
  • 36. Cover w/ Image https://www.manning.com/books/cloud-native @cdavisafc All of this is described, with code samples, in chapter 4 (available through MEAP)