Slide 1

Slide 1 text

Event Sourcing 
 in Laravel

Slide 2

Slide 2 text

About me Freek Van der Herten @freekmurze spatie.be freek.dev ohdear.app f l areapp.io

Slide 3

Slide 3 text

Open Source 
 Software

Slide 4

Slide 4 text

spatie.be/open-source

Slide 5

Slide 5 text

spatie.be/videos

Slide 6

Slide 6 text

Let's talk about event sourcing

Slide 7

Slide 7 text

Talk overview Theory Projectors demo Aggregates demo

Slide 8

Slide 8 text

Traditional application Write data in database An update means overwriting the old data The old data cannot be accessed anymore

Slide 9

Slide 9 text

APPLICATION DATABASE TABLE value X

Slide 10

Slide 10 text

APPLICATION DATABASE TABLE value X value Y

Slide 11

Slide 11 text

Event Sourced Application The application will f i re o f f events Events will get written in a dedicated store Events are passed to consumers that create projections Aggregate, Aggregate Root...

Slide 12

Slide 12 text

APP EVENTS Event Event 1

Slide 13

Slide 13 text

APP EVENTS Event Event 1 Event 2

Slide 14

Slide 14 text

APP EVENTS Event Event 1 Event 2 Event 3

Slide 15

Slide 15 text

APP CONSUMER EVENTS PROJECTION Event Event 1 Event 2 Event 3

Slide 16

Slide 16 text

APP CONSUMER CONSUMER 2 EVENTS PROJECTION Event Event 1 Event 2 Event 3 ANOTHER PROJECTION

Slide 17

Slide 17 text

APP CONSUMER CONSUMER 2 EVENTS PROJECTION Event Event 1 Event 2 Event 3 ANOTHER PROJECTION

Slide 18

Slide 18 text

APP CONSUMER CONSUMER 2 EVENTS PROJECTION Event Event 1 Event 2 Event 3 Event 4 ANOTHER PROJECTION

Slide 19

Slide 19 text

Event Sourced Application Auditing requirements Extra reports needed Recording the unhappy path There is some setup required

Slide 20

Slide 20 text

Laravel 
 Event Sourcing

Slide 21

Slide 21 text

Laravel Event Sourcing Package made by Spatie Aggregates, Projectors & Reactors Beautifully integrated into Laravel Easy to get started with

Slide 22

Slide 22 text

Demo

Slide 23

Slide 23 text

Aggregates

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Demo

Slide 31

Slide 31 text

Wrapping up

Slide 32

Slide 32 text

spatie.be/docs/laravel-event-sourcing

Slide 33

Slide 33 text

Packages spatie.be/docs/laravel-event-sourcing eventsauce.io

Slide 34

Slide 34 text

Event sourcing makes the easy things harder… …and the harder things easier — Frank De Jonge

Slide 35

Slide 35 text

Course eventsourcery.com

Slide 36

Slide 36 text

Larabank github.com/spatie/larabank-traditional github.com/spatie/larabank-event-projector github.com/spatie/larabank-event-projector-aggregates

Slide 37

Slide 37 text

One more thing

Slide 38

Slide 38 text

spatie.be/event-sourcing The basics of event sourcing Best practices Laravel speci f i c examples Event sourced cart ETA July 2021

Slide 39

Slide 39 text

Thank you! spatie.be/docs/laravel-event-sourcing spatie.be/products (only this week 25 % discount on everything) ohdear.app