I would like to get more context from the experts on this article
https://www.infoq.com/news/2016/04/event-sourcing-anti-pattern which summarize
this talk from Greg Young.
I am currently evaluating event sourcing for building an (almost traditional) online lender system. In a nutshell; As a customer, you go to the website and you get loans. As a lender, you need to tweak/adapt your risk policies to make the system sustainable in the presence of defaults.
I am looking at event sourcing because of the following features highlighted by Martin Fowler in
this talk.
(i) audit trail and
(ii) distribution support
My goal is to have event sourcing in the code from the beginning and then distribute/extract services later if I need to. As pointed out by Fowler it is very difficult to add event sourcing at later stages of development (unless you do it for new isolated parts of the system).
In a perfect world different independent parts of the system are writing to the log (say for example the admin of the website and the user-facing website) and everyone can subscribe to the log and build their own models according to their reading needs.
Now, I don't see exactly why I should cherry pick the places in the system that are better suited to this approach given how general it seems to be on paper. I can see that places where lots of distributed transactions are happening and where conflicts become the norm to be something where I should follow a more classical CRUD approach. But beyond these two cases, why I shouldn't go event sourcing first and leave the classical CRUD style to exceptions?
Thank you for your help, much appreciated
Alfredo