When working with documents associated with a business process, often many actions are performed on and with a document. Splitting the document, adding and removing pages, changing metadata, extracting business related information. There are many different actions, that are relevant to the history and the state of the document. But way too often, the whole history is lost.
With incremental updates, changes to the document can be tracked – at least to some degree. But there are limits when it comes to associating business related information, often tracked outside the document, which is then only loosely coupled or not at all.
With this talk I will show how using CQRS and Event Sourcing to combine document history and business processes. In specific examples we will see how actions performed on documents can not only be tracked and stored, but also replayed to investigate every step of the process. And how one command can cause a document to be reliably made available in different variants, depending on the actual usage intention of that very document.