What is it
An immutable log that records the occurrence of events, for example changes to a resource.
Why we use it
To be able to trace what happened, when it happened, and who did it.
When to use it
A typical use is to store all changes to a resource in a service.
It is important to be consistent with delivering at least one event for every mutation of a resource, to guarantee that the audit log is correct. Use the outbox pattern to fulfill this guarantee.