Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Event Sourcing In Laravel

Event Sourcing In Laravel

Freek Van der Herten

January 19, 2021
Tweet

More Decks by Freek Van der Herten

Other Decks in Technology

Transcript

  1. Event Sourcing

    in Laravel

    View Slide

  2. About me


    Freek Van der Herten


    @freekmurze


    spatie.be


    freek.dev


    ohdear.app

    f
    l
    areapp.io

    View Slide

  3. Open Source

    Software

    View Slide

  4. spatie.be/open-source

    View Slide

  5. spatie.be/videos

    View Slide

  6. Let's talk about
    event sourcing

    View Slide

  7. Talk overview


    Theory


    Projectors demo


    Aggregates demo

    View Slide

  8. Traditional application


    Write data in database


    An update means overwriting the old data


    The old data cannot be accessed anymore

    View Slide

  9. APPLICATION
    DATABASE
    TABLE
    value X

    View Slide

  10. APPLICATION
    DATABASE
    TABLE
    value X
    value Y

    View Slide

  11. 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...

    View Slide

  12. APP EVENTS
    Event
    Event 1

    View Slide

  13. APP EVENTS
    Event
    Event 1
    Event 2

    View Slide

  14. APP EVENTS
    Event
    Event 1
    Event 2
    Event 3

    View Slide

  15. APP
    CONSUMER
    EVENTS
    PROJECTION
    Event
    Event 1
    Event 2
    Event 3

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. Event Sourced Application


    Auditing requirements


    Extra reports needed


    Recording the unhappy path


    There is some setup required


    View Slide

  20. Laravel

    Event Sourcing

    View Slide

  21. Laravel Event Sourcing


    Package made by Spatie


    Aggregates, Projectors & Reactors


    Beautifully integrated into Laravel


    Easy to get started with

    View Slide

  22. Demo

    View Slide

  23. Aggregates

    View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. Demo

    View Slide

  31. Wrapping up

    View Slide

  32. spatie.be/docs/laravel-event-sourcing

    View Slide

  33. Packages


    spatie.be/docs/laravel-event-sourcing


    eventsauce.io

    View Slide

  34. Event sourcing makes the easy things harder…


    …and the harder things easier


    — Frank De Jonge

    View Slide

  35. Course


    eventsourcery.com

    View Slide

  36. Larabank


    github.com/spatie/larabank-traditional


    github.com/spatie/larabank-event-projector


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

    View Slide

  37. One more thing

    View Slide

  38. spatie.be/event-sourcing


    The basics of event sourcing


    Best practices


    Laravel speci
    f
    i
    c examples


    Event sourced cart


    ETA July 2021

    View Slide

  39. Thank you!


    spatie.be/docs/laravel-event-sourcing


    spatie.be/products (only this week 25 % discount on everything)


    ohdear.app

    View Slide