We explain the pros and cons of Event Sourcing compared to traditionally updating the current state in a database. We cover trade-offs with Eventual Consistency, problems with concurrency, and options to solve those with optimistic concurrency techniques.
Events are notifications of things that have happened. They are fundamental in event-driven systems where services communicate by publishing events when their state changes.
There are different kinds of events found in event-driven systems. They often represent the same thing that has happened, but serve different purposes and have different advantages. Here I’d like to outline the differences between a few terms.