Video: Event-Driven Microservices, the Sense, t…
Event-Driven Microservices, the Sense, the Non-sense and a Way Forward - Allard Buijze
(https://www.youtube.com/watch?v=jrbWIS7BH70)
Why microservices
monolith that is well-structured, can scale as well
What goes in one service?
What goes in another?
order
customer
product
inventory
Are you micro-pile-of-shit?
- redeploy multiple services at one
- strong dependencies on other service before you can do something
"just go up, and then go right"
anti-modularity forces
suit & tie telling you "the deadline shifted"
technical debt
"""
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
assume components are not on the same deployment
inverted
"if all you have is a hammer, everything looks like a nail"
event patterns
event notification: "something changed"
event-carried state transfer: "this changed"
event sourcing: everything becomes an event
duplicate logic
item is ordered if added, not removed, then ordered
event: explain something happened
command: intent to change something
queries: need for information
=> event notification
!= just save all the events
event handling
Event sourcing check:
throw away everything, except your eventstore
storage is cheap
everything is complex at first
forget about state, think about behavior
"if all you have is a hammer, everything looks like a nail"
:) can I do this one change?
:( "give me all orders above 100$"
:) can I do this one change?
:) "give me all orders above 100$"
events -> contracts with unknown services
consumer driven contracts
within context, want details
across borders, high level
assign services to bounded context
anti corruption layer
use them as explicitly as events
monolith first
disciplined modules
split off services