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 full-size slide

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

    View full-size slide

  3. 25 engineers with 103 years of
    combined experience

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide

  7. DDD
    Yes No
    MSA
    Yes No
    CQRS
    Yes No

    View full-size slide

  8. THE SOLUTION

    View full-size slide

  9. “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 full-size slide

  10. internal versus external events

    View full-size slide

  11. state propagation events

    View full-size slide

  12. A single transaction
    crossing event & query database

    View full-size slide

  13. THE CONSEQUENCES

    View full-size slide

  14. Steep learning curve
    Learning curve
    Finding your way

    View full-size slide

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

    View full-size slide

  16. Projections
    Things might take a while

    View full-size slide

  17. User Privacy
    Can we forget things?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  20. 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 full-size slide

  21. 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 full-size slide