The document tells the story of Adi and his journey working with event sourcing. It begins by introducing Adi and his dream. It then describes some of the challenges Adi faces with event streams exhibiting out of order, conflicting, and impossible state events. The document discusses how time works in distributed systems and challenges with clock drift. It proposes using causality and Lamport timestamps to provide a partial ordering of events while avoiding reliance on real time. Finally, it provides suggestions for Adi's data model and write process to fully order events and detect conflicts while respecting causality.