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

EventSourcing.Live 2021 - Event system evolution - A Scientific Study on Event Sourcing, Lessons from Industry

EventSourcing.Live 2021 - Event system evolution - A Scientific Study on Event Sourcing, Lessons from Industry

Based on interviews with 25 engineers, in which we discussed 19 event sourced systems, we explore the rationale for and the context of event sourcing. Why do people use event sourcing, in what kind of systems do they apply it, and how satisfied are they. We also identify five challenges that practitioners experience: event system evolution, the steep learning curve, lack of available technology, rebuilding projections, and data privacy. We dig deeper into the first challenge, event system evolution. We uncover five tactics that engineers use in upgrading their event sourced system: versioned events, weak schema, upcasting, in-place transformation, and copy-and-transform. In this talk we share the results of our scientific study on event sourcing. We do not share the experience of one company, or one product, but the accumulated experiences of 25 engineers.

Michiel Overeem

October 07, 2021
Tweet

More Decks by Michiel Overeem

Other Decks in Technology

Transcript

  1. Event system evolution
    A Scientific Study on Event Sourcing, Lessons from Industry

    View Slide

  2. Michiel
    Lead Software Architect @ AFAS Software
    PhD candidate @ University Utrecht
    [email protected]
    @michielovereem
    https://movereem.nl
    Overeem

    View Slide

  3. 25 engineers with 103 years of
    combined experience

    View Slide

  4. RQ2 RQ3
    RQ1
    What types of
    systems apply
    event sourcing and
    why?
    How can event
    sourced systems be
    defined?
    What are the
    challenges faced in
    applying event
    sourcing?

    View Slide

  5. THE PROBLEM

    View Slide

  6. Project administration
    Marketing automation
    Website building
    Payment processing
    Content management
    Classified advertising

    View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. Rationale
    Flexibility Complexity Trending Audit
    Immutability
    Strict Cut-off Mutable
    Technology
    .NET JVM PHP Ruby,Scala,Go

    View Slide

  12. DDD
    Yes No
    MSA
    Yes No
    CQRS
    Yes No

    View Slide

  13. THE SOLUTION

    View Slide

  14. “business analysts are telling us what the
    events should be.” (E5)
    “you capture business changes as a flow of events,
    you align these events with real world events.” (E11)

    View Slide

  15. internal versus external events

    View Slide

  16. state propagation events

    View Slide

  17. A single transaction
    crossing event & query database

    View Slide

  18. THE CONSEQUENCES

    View Slide

  19. Steep learning curve
    Learning curve
    Finding your way

    View Slide

  20. Missing tools
    Related to the learning curve? Or the trend?

    View Slide

  21. Projections
    Things might take a while

    View Slide

  22. User Privacy
    Can we forget things?

    View Slide

  23. Evolution
    Small steps, but how to stay stable?

    View Slide

  24. Versioned
    Events
    Weak
    Schema
    Upcasters In-Place
    Copy-
    Transform
    14/24
    5/24
    12/24
    11/24
    2/24

    View Slide

  25. Michiel Overeem, Marten Spoor, Slinger Jansen, and Sjaak
    Brinkkemper. (2021). An Empirical Characterization of Event
    Sourced Systems and Their Schema Evolution - Lessons from
    Industry. In Journal of Systems and Software In Practice volume
    178 (2021), 110970. https://dx.doi.org/10.1016/j.jss.2021.110970

    View Slide

  26. Michiel
    [email protected]
    @michielovereem
    https://movereem.nl
    Overeem
    Event sourcing is a pattern that solves the three problems that modern systems face:
    flexibility, complexity, and reliability.
    These benefits give enough reason to incorporate event sourcing in modern systems.

    View Slide