Event Driven Development

D5a2aef3c745cca287ddef1948157fd3?s=47 carnage
March 09, 2018

Event Driven Development

D5a2aef3c745cca287ddef1948157fd3?s=128

carnage

March 09, 2018
Tweet

Transcript

  1. Event Driven Development Christopher Riley ConFoo 2018 1

  2. Introduction

  3. Introduction • Event sourcing 2

  4. Introduction • Event sourcing • Event Driven Architecture 2

  5. Introduction • Event sourcing • Event Driven Architecture • Task

    Based UI 2
  6. Introduction • Event sourcing • Event Driven Architecture • Task

    Based UI • Event storming 2
  7. What is an event? 2

  8. What is an event? • Something which has happened in

    the past 3
  9. What is an event? • Something which has happened in

    the past • Relevant to a domain expert 3
  10. What is an event? • Something which has happened in

    the past • Relevant to a domain expert • Not technical 3
  11. What is an event? • Something which has happened in

    the past • Relevant to a domain expert • Not technical • Raised in response to an input 3
  12. Task based UI

  13. A CRUD UI 4

  14. A Task Based UI 5

  15. Everything a company does is part of a process 5

  16. Why are task based UI’s helpful to event based systems?

    5
  17. Event sourcing

  18. A familiar model 6

  19. Event sourcing example 7

  20. What does an event sourced system actually look like? 7

  21. Event sourcing architecture 8

  22. Handling a command 9

  23. Inside the model 10

  24. Inside the model 11

  25. Handling Events 12

  26. Projections

  27. Projections • Turn events into read models 13

  28. Projections • Turn events into read models • Can be

    eventually consistent 13
  29. Projections • Turn events into read models • Can be

    eventually consistent • Can be rebuilt 13
  30. A projection 14

  31. Process Managers

  32. Process managers • Handle business logic around events 15

  33. Process managers • Handle business logic around events • A

    state machine 15
  34. Process managers • Handle business logic around events • A

    state machine • Keep track of failures 15
  35. Process managers • Handle business logic around events • A

    state machine • Keep track of failures • Be careful with replays 15
  36. A Process Manager 16

  37. Event Driven Architecture

  38. Event Driven Architecture 17

  39. Cross System Process 18

  40. Conclusions

  41. Thanks • @giveupalready • https://github.com/carnage • https://carnage.github.io 19