How Event Sourcing Ensures Data Consistency in Microservices