EventData contains the data for a single event before being persisted to storage
t() :: %EventStore.EventData{ causation_id: uuid() | nil, correlation_id: uuid() | nil, data: term(), event_type: String.t(), metadata: term() | nil }
uuid() :: String.t()