ExESDB.Commanded.Mapper (ex_esdb v0.0.8-alpha)
A mapper for Commanded to use ExESDB as the event store.
Summary
Functions
Converts a Commanded EventData struct to an ExESDB NewEvent struct.
Converts an ExESDB EventRecord struct to a Commanded RecordedEvent struct.
Functions
@spec to_new_event(Commanded.EventStore.EventData.t()) :: ExESDB.NewEvent.t()
Converts a Commanded EventData struct to an ExESDB NewEvent struct.
Example: iex> event_data = %Commanded.EventStore.EventData{ ...> event_type: "OrderPlaced", ...> data: %{order_id: "123", customer_id: "456"}, ...> metadata: %{correlation_id: "123", causation_id: "456"}, ...> correlation_id: "123", ...> causation_id: "456" ...> } iex> event_id = UUIDv7.generate() iex> ExESDB.Mapper.to_new_event(event_data) %NewEvent{
event_id: ^event_id,
event_type: "OrderPlaced",
data_content_type: 1,
metadata_content_type: 1,
data: %{order_id: "123", customer_id: "456"},
metadata: %{
correlation_id: "123",
causation_id: "456"
stream_version: 0
}
}
@spec to_recorded_event(ExESDB.EventRecord.t()) :: Commanded.EventStore.RecordedEvent.t()
Converts an ExESDB EventRecord struct to a Commanded RecordedEvent struct.
Example: iex> event_stream_id = "stream-1" ^event_stream_id iex> event_id = UUIDv7.generate() ^event_id iex> created = DateTime.utc_now() ^created iex> created_epoch = DateTime.to_unix(created, :millisecond) ^created_epoch iex> event_record = %EventRecord{ ...> event_stream_id: "stream-1", ...> event_number: 1, ...> event_id: ^event_id, ...> event_type: "OrderPlaced", ...> data_content_type: 1, ...> metadata_content_type: 1, ...> data: %{order_id: "123", customer_id: "456"}, ...> metadata: %{ ...> correlation_id: "123", ...> causation_id: "456", ...> stream_version: 0 ...> }, ...> created: ^created, ...> created_epoch: ^created_epoch ...> } ^event_record iex> ExESDB.Mapper.to_recorded_event(event_record) %RecordedEvent{
event_id: ^event_id,
event_number: 1,
event_type: "OrderPlaced",
data: %{
order_id: "123",
customer_id: "456"
},
metadata: %{
correlation_id: "123",
causation_id: "456",
stream_version: 0
},
created_at: ^created,
stream_id: "stream-1",
stream_version: 0,
correlation_id: "123",
causation_id: "456"
}