Event-Driven Microservices, the Sense, the Non-sense and a Way Forward - Allard Buijze (https://www.youtube.com/watch?v=jrbWIS7BH70)

Why microservices ./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.png monolith that is well-structured, can scale as well

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.1.png

What goes in one service? What goes in another?

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.2.png

order customer product inventory

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.3.png Are you micro-pile-of-shit? - redeploy multiple services at one - strong dependencies on other service before you can do something

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.4.png “just go up, and then go right”

anti-modularity forces ./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.5.png suit & tie telling you “the deadline shifted” technical debt

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.6.png """ 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

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.7.png assume components are not on the same deployment

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.8.png

inverted ./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.9.png

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.10.png “if all you have is a hammer, everything looks like a nail”

event patterns ./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.11.png event notification: “something changed” event-carried state transfer: “this changed” event sourcing: everything becomes an event

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.12.png duplicate logic item is ordered if added, not removed, then ordered ./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.13.png

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.14.png event: explain something happened command: intent to change something queries: need for information

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.15.png => event notification

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.16.png != just save all the events

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.17.png

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.18.png event handling

Event sourcing check: throw away everything, except your eventstore

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.19.png

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.20.png storage is cheap everything is complex at first forget about state, think about behavior

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.21.png “if all you have is a hammer, everything looks like a nail”

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.22.png :) can I do this one change? :( “give me all orders above 100$”

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.23.png :) can I do this one change? :) “give me all orders above 100$”

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.24.png events -> contracts with unknown services

consumer driven contracts

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.25.png within context, want details across borders, high level

assign services to bounded context ./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.26.png

anti corruption layer ./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.27.png

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.28.png

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.29.png use them as explicitly as events

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.30.png

./resources/video-event-driven-microservices-the-sense-t.resources/screenshot.31.png monolith first disciplined modules split off services