Slide 1

Slide 1 text

Event Driven Development Christopher Riley ConFoo 2018 1

Slide 2

Slide 2 text

Introduction

Slide 3

Slide 3 text

Introduction • Event sourcing 2

Slide 4

Slide 4 text

Introduction • Event sourcing • Event Driven Architecture 2

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Introduction • Event sourcing • Event Driven Architecture • Task Based UI • Event storming 2

Slide 7

Slide 7 text

What is an event? 2

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Task based UI

Slide 13

Slide 13 text

A CRUD UI 4

Slide 14

Slide 14 text

A Task Based UI 5

Slide 15

Slide 15 text

Everything a company does is part of a process 5

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Event sourcing

Slide 18

Slide 18 text

A familiar model 6

Slide 19

Slide 19 text

Event sourcing example 7

Slide 20

Slide 20 text

What does an event sourced system actually look like? 7

Slide 21

Slide 21 text

Event sourcing architecture 8

Slide 22

Slide 22 text

Handling a command 9

Slide 23

Slide 23 text

Inside the model 10

Slide 24

Slide 24 text

Inside the model 11

Slide 25

Slide 25 text

Handling Events 12

Slide 26

Slide 26 text

Projections

Slide 27

Slide 27 text

Projections • Turn events into read models 13

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

A projection 14

Slide 31

Slide 31 text

Process Managers

Slide 32

Slide 32 text

Process managers • Handle business logic around events 15

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

Process managers • Handle business logic around events • A state machine • Keep track of failures • Be careful with replays 15

Slide 36

Slide 36 text

A Process Manager 16

Slide 37

Slide 37 text

Event Driven Architecture

Slide 38

Slide 38 text

Event Driven Architecture 17

Slide 39

Slide 39 text

Cross System Process 18

Slide 40

Slide 40 text

Conclusions

Slide 41

Slide 41 text

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