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

Reminiscing a crazy journey: building an event sourced ERP system

Reminiscing a crazy journey: building an event sourced ERP system

A decade ago, AFAS started to work on a crazy idea: let’s build ERP software in a completely different way. Instead of three layers and a relational database, we set out to develop a proprietary low-code platform (‘Focus’) to create a new event-sourced ERP system (‘SB+‘).
Today we are hosting the accounting of a thousand companies.
The ride from the initial idea to our current state was bumpy and had a lot of turns. In this keynote, we share stories of our journey and correlate them with results from the scientific research we have conducted.

Michiel Overeem

September 22, 2022
Tweet

More Decks by Michiel Overeem

Other Decks in Technology

Transcript

  1. Reminiscing a crazy journey: building an event sourced ERP system

    @michielovereem michiel.overeem@afas.nl https://movereem.nl
  2. Industry Science @michielovereem michiel.overeem@afas.nl https://movereem.nl

  3. The starting point

  4. Cloud Technology

  5. The journey

  6. Data QueryModel Object Logic Aggregate EventHandler Projector Command Event (#1)

    Event (#2) Event (#3) Query
  7. Person Entity Customer Role Order Agreement party Spending limit Address

    Organisation Entity Delivery BusinessAc tivity party Invoice BusinessAc tivity party Address Address Spending limit Spending limit Own Organisation Workarea workarea Spending limit • Functional model, suitable for ERP • Variability in the model • Contains 25 years of knowledge
  8. None
  9. Person Entity Customer Role Order Agreement party Spending limit Address

    Organisation Entity Delivery BusinessAc tivity party Invoice BusinessAc tivity party Address Address Spending limit Spending limit Own Organisation Workarea workarea Spending limit
  10. ? Full history!

  11. Projections

  12. Separation of data

  13. Duplication 🤐

  14. No separation anymore

  15. Replay

  16. Sync events

  17. Partial replay?

  18. Reuse data for replay?

  19. Upgrades without downtime

  20. v1.0

  21. v1.0 v2.0

  22. v1.0 v2.0

  23. v1.0 v2.0

  24. v2.0

  25. Repairs

  26. None
  27. v1.0 v2.0

  28. So what?

  29. The future is event- driven @michielovereem michiel.overeem@afas.nl https://movereem.nl