Video: Event-Driven Microservices, the Sense, t…

November 28th, 2020

Event-Driven Microservices, the Sense, the Non-sense and a Way Forward - Allard Buijze

(https://www.youtube.com/watch?v=jrbWIS7BH70)

 

 

Why microservices

no description for image available

monolith that is well-structured, can scale as well

 

 

no description for image available

 

 

What goes in one service?

What goes in another?

 

no description for image available

 

order

customer

product

inventory

 

 

no description for image available

Are you micro-pile-of-shit?

- redeploy multiple services at one

- strong dependencies on other service before you can do something

 

no description for image available

"just go up, and then go right"

 

anti-modularity forces

no description for image available

suit & tie telling you "the deadline shifted"

technical debt

 

no description for image available

"""

it's all about discipline

if you can't wax a car, forget about karate

If you can't build a monolith, forget about microservices

"""

 

there is a journey towards microservices

1) build monolith

2) compnents

3) split off services => non-functional requirements

 

no description for image available

assume components are not on the same deployment

 

no description for image available

 

inverted

no description for image available

 

no description for image available

"if all you have is a hammer, everything looks like a nail"

 

event patterns

no description for image available

event notification: "something changed"

event-carried state transfer: "this changed"

event sourcing: everything becomes an event

 

no description for image available

duplicate logic

item is ordered if added, not removed, then ordered

no description for image available

 

no description for image available

event: explain something happened

command: intent to change something

queries: need for information

 

no description for image available

=> event notification

 

no description for image available

!= just save all the events

 

no description for image available

 

no description for image available

event handling

 

Event sourcing check:

throw away everything, except your eventstore

 

no description for image available

 

no description for image available

storage is cheap

everything is complex at first

forget about state, think about behavior

 

no description for image available

"if all you have is a hammer, everything looks like a nail"

 

no description for image available

:) can I do this one change?

:( "give me all orders above 100$"

 

no description for image available

:) can I do this one change?

:) "give me all orders above 100$"

 

no description for image available

events -> contracts with unknown services

 

consumer driven contracts

 

no description for image available

within context, want details

across borders, high level

 

assign services to bounded context

no description for image available

 

anti corruption layer

no description for image available

 

no description for image available

 

no description for image available

use them as explicitly as events

 

no description for image available

 

no description for image available

monolith first

disciplined modules

split off services