SlideShare une entreprise Scribd logo
1  sur  127
EffectiveEffective
MicroserviceMicroservice
DesignDesign
David Dawson
CEO GoMicro.Services
(and Simplicity Itself)
david.dawson@gomicro.services
@davidthecoder
What is
Design?
What is
Architecture?
Architecture
vs
Design
Limitless Options
For Design
Only a few
Architectures
What is
Architecture?
Architecture
Is Philosophy
What is your
Philosophy?
Microservices
Philosophy?
The path toThe path to
MicroservicesMicroservices
The path toThe path to
MicroservicesMicroservices
ThisThis
SucksSucks
What are
Microservices?
Isolation
Aspiration
“Microservices”
are not about
design
What will make
Microservices
Awesome?
Mid 2014 ….
Mid 2014 ….
Mid 2014 ….
other design
disciplines
apply below
The brave new
world of
DDD
Microservices
What do
we care
about?
Events
Events
The One True
Ubiquitous Language
Events
The Stream is the
Only Truth that Matters
Messaging
Is
Cool
Event Sourced
Microservices
Event Sourced
Microservices
Upgrades!
Event Sourced
Microservices
Replay!
Entity
Entity
Many
Representations
Hand
Waving
Consultant
Real World
ExampleTM
Company Analysis
Company Analysis
Social analysis
Anomoly Detection
Introspect an
Enterprise
Audient.ly
Groups
'Source' Pipeline
Event
Store
WordCloud
Map
View
Gender
Detection
Sentiment
Analysis
Etc...
Users
Event
Store
Gateway
Users
Microservice
microservice Microservice
Event
Store
Microservice
Microservice
Microservicemicroservice Microservice
Microservice
Event
Store
Gateway
Microservice
Event
Store
Event
Store
Gateway
Function
Event
Store
Event
Store
Gateway
Source Function
Event
Store
ServiceService Service
Event
Store
Gateway
View
Source Function
Event
Store
View
View
ServiceService Service
Event
Store
Gateway
View
Source Function
Event
Store
View
View
ServiceService Service
Function
Event
Store
Gateway
Function
View
Source Function
Event
Store
View
View
ServiceService Service
Function
Event
Store
Gateway
Function
Gateway?
View
Function
Event
Store
View
View
ServiceService Service
Function
Event
Store
Gateway
Function
Gateway
Gateway
Gateway
Adapt
world views
Gateway
Adapt
world views
Events
Messaging
HTTP
REST
What else?
View
Function
Event
Store
View
View
ServiceService Service
Function
Event
Store
Gateway
Function
Function
FunctionFunction Function
'Chatter'
Sentiment
Analysis
Gender
Detection
Etc...
Microservice
MicroserviceMicroservice MIcroservice
What else?
View
Functions
Event
Store
View
View
ServiceService Service
Function
Event
Store
Gateway
Function
View View
View
Gateway
View View
View
Gateway●Eventually Consistent
View View
View
Gateway●Eventually Consistent
●No Database!
View View
View
Gateway●Eventually Consistent
●No Database!
●Totally Isolated
Event Sourcing!
View View
View
Gateway
Product
Gateway
Product
Gateway
Router
Gateway
Product Product Product
Router
Gateway
Product Product Product
Event Store
Upgrade?
Router
Gateway
Product Product Product
Event Store
Router
Gateway
Product Product Product
Event Store
Product
Router
Gateway
Product Product Product
Event Store
Product
REPLAY
Router
Gateway
Product Product Product
Event Store
Product
REPLAY
Scaling?
Event Streams
Router
Gateway
Product Product Product
Router
Gateway
Product
Router
Gateway
Product
Router
Gateway
Product
Router
Gateway
Product
1 .. 200
What does an event look
like?
Action The intent behind the
event
What does an event look
like?
Action The intent behind the
event
Event ID A unique identifier
What does an event look
like?
Action The intent behind the
event
Event ID A unique identifier
Parent ID The event that 'caused'
this one
What does an event look
like?
Action The intent behind the
event
Event ID A unique identifier
Parent ID The event that 'caused'
this one
Service ID The service or process
that created it
What does an event look
like?
Action The intent behind the
event
Event ID A unique identifier
Parent ID The event that 'caused'
this one
Service ID The service or process
that created it
Payload Your Stuff
What does an event look
like?
Fun stuff
this gives you
Chains of
Events
Order Stream
Notification Stream
Payment Stream
Order Stream
Notification Stream
Payment Stream
Order Stream
Notification Stream
Payment Stream
Order Stream
Notification Stream
Payment Stream
Order Stream
Notification Stream
Payment Stream
Order Placed
Payment Taken
Email Sent Email Sent
Dependencies
Dependencies
Order Placed
Payment Taken
Email Sent Email Sent
Dependencies
Order Placed
Order Creation Service
Payment Taken
Payment Processor
Email Sent
Email
Gateway
Email Sent
Email
Gateway
Audit
Audit
Order Placed
Payment Taken
Email Sent Email Sent
Audit
Order Placed
User = X
Payment Taken
Email Sent Email Sent
Testing Microservices
is Hard!
Testing Microservices
is Hard?
The Network
Process Management in a Test
The Network
Process Management in a Test
The Network
Coupling between services
Process Management in a Test
The Network
Coupling between services
The Network
Testing!
Order Placed
Payment Taken
Email Sent Email Sent
Testing!
Order Placed
Payment Taken
Email Sent Email Sent
A TEST
Testing!
Order Placed
Email Sent
A TEST Mock Payment
Service?
Order Stream
Notification Stream
Payment Stream
Testing!
Order Placed
Payment Taken
Email Sent Email Sent
A TEST
Testing!
Order Placed
Payment Taken
Email Sent Email Sent
How can you do
this?
Event Store
Event Distribution
Projections
Security
Event chain materialisation
Client replay
Checkpoints
Scaling
Testing
Serialisation
Schema Change
Service Upgrade
…..
Want to help us
make it easy?
david.dawson@gomicro.services
http://gomicro.services
Want to help us
make it easy?
David Dawson @davidthecoder
Questions?
David Dawson @davidthecoder
Thanks!
http://www.slideshare.net/DavidDawson9
µCon 2015µCon 2015
Stockholm - 5th
/6th
Nov
London - 9th
/10th
Nov
Next Time!Next Time!
Deployment Options
for Microservices
4th
November

Contenu connexe

Tendances

Going Serverless with CQRS on AWS
Going Serverless with CQRS on AWSGoing Serverless with CQRS on AWS
Going Serverless with CQRS on AWSAnton Udovychenko
 
#JaxLondon: Building microservices with Scala, functional domain models and S...
#JaxLondon: Building microservices with Scala, functional domain models and S...#JaxLondon: Building microservices with Scala, functional domain models and S...
#JaxLondon: Building microservices with Scala, functional domain models and S...Chris Richardson
 
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingMicroservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingBen Wilcock
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkbanq jdon
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasJavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasChris Richardson
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Chris Richardson
 
A practical introduction to Event Sourcing and CQRS
A practical introduction to Event Sourcing and CQRSA practical introduction to Event Sourcing and CQRS
A practical introduction to Event Sourcing and CQRSRobert Lemke
 
A Pattern Language for Microservices (@futurestack)
A Pattern Language for Microservices (@futurestack)A Pattern Language for Microservices (@futurestack)
A Pattern Language for Microservices (@futurestack)Chris Richardson
 
Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)Chris Richardson
 
Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)Chris Richardson
 
Building microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring BootBuilding microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring BootChris Richardson
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event SourcingMike Bild
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Chris Richardson
 
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...Chris Richardson
 
Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Chris Richardson
 
Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)Chris Richardson
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architectureChris Richardson
 
ArchSummit Shenzhen - Using sagas to maintain data consistency in a microserv...
ArchSummit Shenzhen - Using sagas to maintain data consistency in a microserv...ArchSummit Shenzhen - Using sagas to maintain data consistency in a microserv...
ArchSummit Shenzhen - Using sagas to maintain data consistency in a microserv...Chris Richardson
 
Developing microservices with aggregates (SpringOne platform, #s1p)
Developing microservices with aggregates (SpringOne platform, #s1p)Developing microservices with aggregates (SpringOne platform, #s1p)
Developing microservices with aggregates (SpringOne platform, #s1p)Chris Richardson
 
Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)Chris Richardson
 

Tendances (20)

Going Serverless with CQRS on AWS
Going Serverless with CQRS on AWSGoing Serverless with CQRS on AWS
Going Serverless with CQRS on AWS
 
#JaxLondon: Building microservices with Scala, functional domain models and S...
#JaxLondon: Building microservices with Scala, functional domain models and S...#JaxLondon: Building microservices with Scala, functional domain models and S...
#JaxLondon: Building microservices with Scala, functional domain models and S...
 
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingMicroservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event Sourcing
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasJavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)
 
A practical introduction to Event Sourcing and CQRS
A practical introduction to Event Sourcing and CQRSA practical introduction to Event Sourcing and CQRS
A practical introduction to Event Sourcing and CQRS
 
A Pattern Language for Microservices (@futurestack)
A Pattern Language for Microservices (@futurestack)A Pattern Language for Microservices (@futurestack)
A Pattern Language for Microservices (@futurestack)
 
Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)
 
Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)
 
Building microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring BootBuilding microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring Boot
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event Sourcing
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
 
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
 
Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)
 
Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
ArchSummit Shenzhen - Using sagas to maintain data consistency in a microserv...
ArchSummit Shenzhen - Using sagas to maintain data consistency in a microserv...ArchSummit Shenzhen - Using sagas to maintain data consistency in a microserv...
ArchSummit Shenzhen - Using sagas to maintain data consistency in a microserv...
 
Developing microservices with aggregates (SpringOne platform, #s1p)
Developing microservices with aggregates (SpringOne platform, #s1p)Developing microservices with aggregates (SpringOne platform, #s1p)
Developing microservices with aggregates (SpringOne platform, #s1p)
 
Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)
 

En vedette

Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and MicroservicesPhil Windley
 
The Reactive Manifesto
The Reactive ManifestoThe Reactive Manifesto
The Reactive ManifestoReza Samei
 
Events & Microservices
Events & MicroservicesEvents & Microservices
Events & MicroservicesYamen Sader
 
Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...Chris Richardson
 
Iron.io Technical Overview
Iron.io Technical OverviewIron.io Technical Overview
Iron.io Technical OverviewChad Arimura
 
OpenWhisk: Event-driven Design
OpenWhisk: Event-driven DesignOpenWhisk: Event-driven Design
OpenWhisk: Event-driven DesignAltoros
 
Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...drnugent
 
Reactive Design Patterns — J on the Beach
Reactive Design Patterns — J on the BeachReactive Design Patterns — J on the Beach
Reactive Design Patterns — J on the BeachRoland Kuhn
 
Networking Overview for Docker Platform
Networking Overview for Docker PlatformNetworking Overview for Docker Platform
Networking Overview for Docker PlatformAditya Patawari
 
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)Chris Richardson
 
100 blue mix days technical training
100 blue mix days technical training100 blue mix days technical training
100 blue mix days technical trainingAjit Yohannan
 
Docker serverless v1.0
Docker serverless v1.0Docker serverless v1.0
Docker serverless v1.0Thomas Chacko
 
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaRick Warren
 
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Steve Pember
 
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland KuhnReactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland KuhnZalando Technology
 
IBM Bluemix Workshop version 3
IBM Bluemix Workshop version 3IBM Bluemix Workshop version 3
IBM Bluemix Workshop version 3Nguyen Tai Dzung
 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsGo Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsJonas Bonér
 
A Microservices Reference Architecture
A Microservices Reference ArchitectureA Microservices Reference Architecture
A Microservices Reference ArchitectureYamen Sader
 
API Strategy Austin - App-centric vs Job-centric Microservices
API Strategy Austin - App-centric vs Job-centric MicroservicesAPI Strategy Austin - App-centric vs Job-centric Microservices
API Strategy Austin - App-centric vs Job-centric MicroservicesIvan Dwyer
 

En vedette (20)

Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and Microservices
 
The Reactive Manifesto
The Reactive ManifestoThe Reactive Manifesto
The Reactive Manifesto
 
Events & Microservices
Events & MicroservicesEvents & Microservices
Events & Microservices
 
Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...
 
Iron.io Technical Overview
Iron.io Technical OverviewIron.io Technical Overview
Iron.io Technical Overview
 
OpenWhisk: Event-driven Design
OpenWhisk: Event-driven DesignOpenWhisk: Event-driven Design
OpenWhisk: Event-driven Design
 
Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...
 
Reactive Design Patterns — J on the Beach
Reactive Design Patterns — J on the BeachReactive Design Patterns — J on the Beach
Reactive Design Patterns — J on the Beach
 
Networking Overview for Docker Platform
Networking Overview for Docker PlatformNetworking Overview for Docker Platform
Networking Overview for Docker Platform
 
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)
 
100 blue mix days technical training
100 blue mix days technical training100 blue mix days technical training
100 blue mix days technical training
 
Docker serverless v1.0
Docker serverless v1.0Docker serverless v1.0
Docker serverless v1.0
 
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
 
Reactive Design Patterns
Reactive Design PatternsReactive Design Patterns
Reactive Design Patterns
 
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...
 
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland KuhnReactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
 
IBM Bluemix Workshop version 3
IBM Bluemix Workshop version 3IBM Bluemix Workshop version 3
IBM Bluemix Workshop version 3
 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsGo Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
 
A Microservices Reference Architecture
A Microservices Reference ArchitectureA Microservices Reference Architecture
A Microservices Reference Architecture
 
API Strategy Austin - App-centric vs Job-centric Microservices
API Strategy Austin - App-centric vs Job-centric MicroservicesAPI Strategy Austin - App-centric vs Job-centric Microservices
API Strategy Austin - App-centric vs Job-centric Microservices
 

Similaire à Effective Microservices Design using Events and Event Sourcing

DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...David Dawson
 
Cybersecurity Legos - We're all part of something bigger
Cybersecurity Legos - We're all part of something biggerCybersecurity Legos - We're all part of something bigger
Cybersecurity Legos - We're all part of something biggerBen Boyd
 
OReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreOReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreChris Richardson
 
Frank Gens - Clouds and Beyond: Positioning for the Next 20 Years in Enterpri...
Frank Gens - Clouds and Beyond: Positioning for the Next 20 Years in Enterpri...Frank Gens - Clouds and Beyond: Positioning for the Next 20 Years in Enterpri...
Frank Gens - Clouds and Beyond: Positioning for the Next 20 Years in Enterpri...innoforum09
 
NIT Company Profile
NIT Company ProfileNIT Company Profile
NIT Company ProfileAmr Omar
 
Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)Graham Lea
 
Review of A Service Computing Manifesto : The Next 10 Years
Review of A Service Computing Manifesto : The Next 10 YearsReview of A Service Computing Manifesto : The Next 10 Years
Review of A Service Computing Manifesto : The Next 10 YearsAdi Purnama
 
AWS Enterprise Summit Netherlands - Keynote
AWS Enterprise Summit Netherlands - KeynoteAWS Enterprise Summit Netherlands - Keynote
AWS Enterprise Summit Netherlands - KeynoteAmazon Web Services
 
What is ? Modern business questions 2014
What is ? Modern business questions 2014What is ? Modern business questions 2014
What is ? Modern business questions 2014Exo Futures
 
.NET Architecture for Enterprises
.NET Architecture for Enterprises.NET Architecture for Enterprises
.NET Architecture for EnterprisesWade Wegner
 
Integration in the Enterprise Mobile World
Integration in the Enterprise Mobile WorldIntegration in the Enterprise Mobile World
Integration in the Enterprise Mobile Worldkidozen
 
Quantifying Cyber Risk, Insurance and The Value of Personal Data
Quantifying Cyber Risk, Insurance and The Value of Personal DataQuantifying Cyber Risk, Insurance and The Value of Personal Data
Quantifying Cyber Risk, Insurance and The Value of Personal DataSteven Schwartz
 
Agility matrix - Expanded!
Agility matrix - Expanded!Agility matrix - Expanded!
Agility matrix - Expanded!Clayton Costa
 
Devoxx London 2017 - Rethinking Services With Stateful Streams
Devoxx London 2017 - Rethinking Services With Stateful StreamsDevoxx London 2017 - Rethinking Services With Stateful Streams
Devoxx London 2017 - Rethinking Services With Stateful StreamsBen Stopford
 
AWS FSI Symposium 2017 NYC - 9 Cloud Enabled Security Designs
AWS FSI Symposium 2017 NYC - 9 Cloud Enabled Security DesignsAWS FSI Symposium 2017 NYC - 9 Cloud Enabled Security Designs
AWS FSI Symposium 2017 NYC - 9 Cloud Enabled Security DesignsAmazon Web Services
 
Med Hodet I Skyene Og Beina På Bakken (Av Andersf@Microsoft Com)
Med Hodet I Skyene Og Beina På Bakken (Av Andersf@Microsoft Com)Med Hodet I Skyene Og Beina På Bakken (Av Andersf@Microsoft Com)
Med Hodet I Skyene Og Beina På Bakken (Av Andersf@Microsoft Com)Microsoft Norge AS
 
There is no such thing as a microservice! (oracle code nyc)
There is no such thing as a microservice! (oracle code nyc)There is no such thing as a microservice! (oracle code nyc)
There is no such thing as a microservice! (oracle code nyc)Chris Richardson
 
apidays LIVE Paris - Drawing the right lines: DDD, APIs and Microservices by ...
apidays LIVE Paris - Drawing the right lines: DDD, APIs and Microservices by ...apidays LIVE Paris - Drawing the right lines: DDD, APIs and Microservices by ...
apidays LIVE Paris - Drawing the right lines: DDD, APIs and Microservices by ...apidays
 

Similaire à Effective Microservices Design using Events and Event Sourcing (20)

DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
DDD & Microservices from the Front Lines: Building Evolvable Software with Ev...
 
Soa
SoaSoa
Soa
 
Soa
Soa Soa
Soa
 
Cybersecurity Legos - We're all part of something bigger
Cybersecurity Legos - We're all part of something biggerCybersecurity Legos - We're all part of something bigger
Cybersecurity Legos - We're all part of something bigger
 
OReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreOReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the core
 
Frank Gens - Clouds and Beyond: Positioning for the Next 20 Years in Enterpri...
Frank Gens - Clouds and Beyond: Positioning for the Next 20 Years in Enterpri...Frank Gens - Clouds and Beyond: Positioning for the Next 20 Years in Enterpri...
Frank Gens - Clouds and Beyond: Positioning for the Next 20 Years in Enterpri...
 
NIT Company Profile
NIT Company ProfileNIT Company Profile
NIT Company Profile
 
Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)
 
Review of A Service Computing Manifesto : The Next 10 Years
Review of A Service Computing Manifesto : The Next 10 YearsReview of A Service Computing Manifesto : The Next 10 Years
Review of A Service Computing Manifesto : The Next 10 Years
 
AWS Enterprise Summit Netherlands - Keynote
AWS Enterprise Summit Netherlands - KeynoteAWS Enterprise Summit Netherlands - Keynote
AWS Enterprise Summit Netherlands - Keynote
 
What is ? Modern business questions 2014
What is ? Modern business questions 2014What is ? Modern business questions 2014
What is ? Modern business questions 2014
 
.NET Architecture for Enterprises
.NET Architecture for Enterprises.NET Architecture for Enterprises
.NET Architecture for Enterprises
 
Integration in the Enterprise Mobile World
Integration in the Enterprise Mobile WorldIntegration in the Enterprise Mobile World
Integration in the Enterprise Mobile World
 
Quantifying Cyber Risk, Insurance and The Value of Personal Data
Quantifying Cyber Risk, Insurance and The Value of Personal DataQuantifying Cyber Risk, Insurance and The Value of Personal Data
Quantifying Cyber Risk, Insurance and The Value of Personal Data
 
Agility matrix - Expanded!
Agility matrix - Expanded!Agility matrix - Expanded!
Agility matrix - Expanded!
 
Devoxx London 2017 - Rethinking Services With Stateful Streams
Devoxx London 2017 - Rethinking Services With Stateful StreamsDevoxx London 2017 - Rethinking Services With Stateful Streams
Devoxx London 2017 - Rethinking Services With Stateful Streams
 
AWS FSI Symposium 2017 NYC - 9 Cloud Enabled Security Designs
AWS FSI Symposium 2017 NYC - 9 Cloud Enabled Security DesignsAWS FSI Symposium 2017 NYC - 9 Cloud Enabled Security Designs
AWS FSI Symposium 2017 NYC - 9 Cloud Enabled Security Designs
 
Med Hodet I Skyene Og Beina På Bakken (Av Andersf@Microsoft Com)
Med Hodet I Skyene Og Beina På Bakken (Av Andersf@Microsoft Com)Med Hodet I Skyene Og Beina På Bakken (Av Andersf@Microsoft Com)
Med Hodet I Skyene Og Beina På Bakken (Av Andersf@Microsoft Com)
 
There is no such thing as a microservice! (oracle code nyc)
There is no such thing as a microservice! (oracle code nyc)There is no such thing as a microservice! (oracle code nyc)
There is no such thing as a microservice! (oracle code nyc)
 
apidays LIVE Paris - Drawing the right lines: DDD, APIs and Microservices by ...
apidays LIVE Paris - Drawing the right lines: DDD, APIs and Microservices by ...apidays LIVE Paris - Drawing the right lines: DDD, APIs and Microservices by ...
apidays LIVE Paris - Drawing the right lines: DDD, APIs and Microservices by ...
 

Plus de David Dawson

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
 
Reactive APIs using Muon
Reactive APIs using MuonReactive APIs using Muon
Reactive APIs using MuonDavid Dawson
 
Reactive APIs using Muon
Reactive APIs using MuonReactive APIs using Muon
Reactive APIs using MuonDavid Dawson
 
Practical Event Systems - Microservices for the Data Architect
Practical Event Systems - Microservices for the Data ArchitectPractical Event Systems - Microservices for the Data Architect
Practical Event Systems - Microservices for the Data ArchitectDavid Dawson
 
Intro to Muon - How to build Polyglot Message and Event Microservices
Intro to Muon - How to build Polyglot Message and Event MicroservicesIntro to Muon - How to build Polyglot Message and Event Microservices
Intro to Muon - How to build Polyglot Message and Event MicroservicesDavid Dawson
 
Microservices Past, Present, Future
Microservices Past, Present, FutureMicroservices Past, Present, Future
Microservices Past, Present, FutureDavid Dawson
 
Microservices Pain: Testing
Microservices Pain: TestingMicroservices Pain: Testing
Microservices Pain: TestingDavid Dawson
 
Assorted Learnings of Microservices
Assorted Learnings of MicroservicesAssorted Learnings of Microservices
Assorted Learnings of MicroservicesDavid Dawson
 
Hexagonal Architecture using Grails
Hexagonal Architecture using GrailsHexagonal Architecture using Grails
Hexagonal Architecture using GrailsDavid Dawson
 
Groovy Architectural Flexibility
Groovy Architectural FlexibilityGroovy Architectural Flexibility
Groovy Architectural FlexibilityDavid Dawson
 

Plus de David Dawson (10)

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
 
Reactive APIs using Muon
Reactive APIs using MuonReactive APIs using Muon
Reactive APIs using Muon
 
Reactive APIs using Muon
Reactive APIs using MuonReactive APIs using Muon
Reactive APIs using Muon
 
Practical Event Systems - Microservices for the Data Architect
Practical Event Systems - Microservices for the Data ArchitectPractical Event Systems - Microservices for the Data Architect
Practical Event Systems - Microservices for the Data Architect
 
Intro to Muon - How to build Polyglot Message and Event Microservices
Intro to Muon - How to build Polyglot Message and Event MicroservicesIntro to Muon - How to build Polyglot Message and Event Microservices
Intro to Muon - How to build Polyglot Message and Event Microservices
 
Microservices Past, Present, Future
Microservices Past, Present, FutureMicroservices Past, Present, Future
Microservices Past, Present, Future
 
Microservices Pain: Testing
Microservices Pain: TestingMicroservices Pain: Testing
Microservices Pain: Testing
 
Assorted Learnings of Microservices
Assorted Learnings of MicroservicesAssorted Learnings of Microservices
Assorted Learnings of Microservices
 
Hexagonal Architecture using Grails
Hexagonal Architecture using GrailsHexagonal Architecture using Grails
Hexagonal Architecture using Grails
 
Groovy Architectural Flexibility
Groovy Architectural FlexibilityGroovy Architectural Flexibility
Groovy Architectural Flexibility
 

Dernier

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
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
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
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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
 
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
 
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
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Dernier (20)

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 ...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
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
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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...
 
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...
 
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
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

Effective Microservices Design using Events and Event Sourcing

Notes de l'éditeur

  1. Not the solution! An approach to solving the problem. Tools to engage the world Sounds familiar.
  2. h
  3. Ask the audience. One big one.
  4. Some say XXX This is what we are going to discuss! Understand a man by walking in his shoes
  5. Flick through the pack of cards
  6. Flick through the pack of cards
  7. Flick through the pack of cards
  8. Isolation! Aspiration Evolution Ability to change
  9. Dan North Bounded/ Centred Community
  10. Dan North Bounded/ Centred Community
  11. Ask the audience. One big one.
  12. Ask the audience. One big one.
  13. Ask the audience. One big one.
  14. One inescapable conclusion...
  15. Same mistakes Same pain..
  16. Same mistakes Same pain..
  17. Ask the audience. One big one.
  18. Pull out cards! Throw them away!
  19. Ask the audience. One big one.
  20. Ask the audience. One big one.
  21. Ask the audience. One big one.
  22. HTTP is ok.
  23. Ask the audience. One big one.
  24. Ask the audience. One big one.
  25. Ask the audience. One big one.
  26. Ask the audience. One big one.
  27. Ask the audience. One big one.
  28. Ask the audience. One big one.
  29. Ask the audience. One big one.
  30. Ask the audience. One big one.
  31. Ask the audience. One big one.
  32. Ask the audience. One big one.
  33. Ask the audience. One big one.
  34. Ask the audience. One big one.
  35. Tectonic plates Areas that change together How can we figure this out?
  36. Tectonic plates Areas that change together How can we figure this out?
  37. Tectonic plates Areas that change together How can we figure this out?
  38. Tectonic plates Areas that change together How can we figure this out?
  39. Tectonic plates Areas that change together How can we figure this out?
  40. Tectonic plates Areas that change together How can we figure this out?
  41. Ask the audience. One big one.
  42. Tectonic plates Areas that change together How can we figure this out?
  43. Tectonic plates Areas that change together How can we figure this out?
  44. Tectonic plates Areas that change together How can we figure this out?
  45. Tectonic plates Areas that change together How can we figure this out?
  46. Tectonic plates Areas that change together How can we figure this out?
  47. Ask the audience. One big one.
  48. Tectonic plates Areas that change together How can we figure this out?
  49. Tectonic plates Areas that change together How can we figure this out?
  50. Tectonic plates Areas that change together How can we figure this out?
  51. Tectonic plates Areas that change together How can we figure this out?
  52. Ask the audience. One big one.
  53. Tectonic plates Areas that change together How can we figure this out?
  54. Tectonic plates Areas that change together How can we figure this out?
  55. Tectonic plates Areas that change together How can we figure this out?
  56. Tectonic plates Areas that change together How can we figure this out?
  57. Tectonic plates Areas that change together How can we figure this out?
  58. Ask the audience. One big one.
  59. Ask the audience. One big one.
  60. Ask the audience. One big one.
  61. Ask the audience. One big one.
  62. Ask the audience. One big one.
  63. Totally isolated Yet consistent
  64. Ask the audience. One big one.
  65. Totally isolated Yet consistent
  66. Totally isolated Yet consistent
  67. Totally isolated Yet consistent
  68. Totally isolated Yet consistent
  69. Ask the audience. One big one.
  70. Ask the audience. One big one.
  71. Totally isolated Yet consistent
  72. Totally isolated Yet consistent
  73. Totally isolated Yet consistent
  74. Totally isolated Yet consistent
  75. Totally isolated Yet consistent
  76. Totally isolated Yet consistent
  77. Totally isolated Yet consistent
  78. Totally isolated Yet consistent
  79. Totally isolated Yet consistent
  80. Totally isolated Yet consistent
  81. Totally isolated Yet consistent
  82. Ask the audience. One big one.
  83. Ask the audience. One big one.
  84. Ask the audience. One big one.
  85. Ask the audience. One big one.
  86. Ask the audience. One big one.
  87. Ask the audience. One big one.
  88. Ask the audience. One big one.
  89. Ask the audience. One big one.
  90. Ask the audience. One big one.
  91. Ask the audience. One big one.
  92. Ask the audience. One big one.
  93. Ask the audience. One big one.
  94. Ask the audience. One big one.
  95. Ask the audience. One big one.
  96. Ask the audience. One big one.
  97. Ask the audience. One big one.
  98. Ask the audience. One big one.
  99. Ask the audience. One big one.
  100. Ask the audience. One big one.
  101. Ask the audience. One big one.
  102. Ask the audience. One big one.
  103. Ask the audience. One big one.
  104. Ask the audience. One big one.
  105. Ask the audience. One big one.
  106. Ask the audience. One big one.
  107. Ask the audience. One big one.
  108. Ask the audience. One big one.
  109. Ask the audience. One big one.
  110. Not the first time we've ridden the trail
  111. Not the first time we've ridden the trail
  112. Not the first time we've ridden the trail
  113. Not the first time we've ridden the trail
  114. TALK TO MUNIB!