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