Calculating event-sourcing snapshots
Event sourcing is arguably the most important pattern in our architecture because it turns events into facts. Instead of treating events as ephemeral messages, they become first-class citizens and live on in the event lake. They serve as an audit trail of activity within the system and enable replaying of events to seed new services, repair ailing services, or help validate hypotheses for system improvements.Unfortunately, event sourcing has a bad reputation for being overly complex for most use cases. This complexity revolves around the need to recalculate the current state from events over and over again to perform basic user scenarios, but instead of abandoning event sourcing and all its benefits, it is better to employ approaches that eliminate the need to recalculate the current state.Database-first event sourcing is a variation of the pattern we covered in Chapter 5, Turning the Cloud into the Database, and it gives us the best of both worlds...