Event sourcing is a powerful architecture approach that can reveal the depth of the application domain. However improper use can lead to a confusing system that will be difficult to develop.
In this talk, we will analyze what event sourcing is and how it differs from other architectural styles. Next, we analyze how event sourcing can help solve the functional and nonfunctional requirements that are often presented to modern applications.
In conclusion, we will see how to connect event sourcing and distributed systems. We will separately analyze how in this case to find and resolve data change conflicts. This talk is intended to listeners who haven't worked with event sourced systems yet but will also be useful for people who are already familiar with this concept.