Skip to content

Commit 1394637

Browse files
committed
Updated code snippets to the newest version - not using DomainEvent and improved load() method.
1 parent 64dc6b7 commit 1394637

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

posts/2025-09-12-evolving-event-names-and-payloads-in-rails-event-store-without-breaking-history.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ We decided to create a custom `Transformations::RefundToReturnEventMapper`and in
5656
'Ordering::ItemAddedToRefund' => 'Ordering::ItemAddedToReturn',
5757
'Ordering::ItemRemovedFromRefund' => 'Ordering::ItemRemovedFromReturn'
5858
),
59-
RubyEventStore::Mappers::Transformation::DomainEvent.new,
6059
RubyEventStore::Mappers::Transformation::SymbolizeMetadataKeys.new,
6160
RubyEventStore::Mappers::Transformation::PreserveTypes.new
6261
)
@@ -91,14 +90,20 @@ module Transformations
9190

9291
if old_class_name != new_class_name
9392
transformed_data = transform_payload(record.data, old_class_name)
94-
record.class.new(
95-
event_id: record.event_id,
96-
event_type: new_class_name,
97-
data: transformed_data,
98-
metadata: record.metadata,
99-
timestamp: record.timestamp || Time.now.utc,
100-
valid_at: record.valid_at || Time.now.utc
101-
)
93+
begin
94+
metadata_json = record.metadata.respond_to?(:to_json) ? record.metadata.to_json : record.metadata.to_h.to_json
95+
RubyEventStore::SerializedRecord.new(
96+
event_id: record.event_id,
97+
event_type: new_class_name,
98+
data: transformed_data.to_json,
99+
metadata: metadata_json,
100+
timestamp: record.timestamp,
101+
valid_at: record.valid_at
102+
)
103+
rescue => e
104+
puts "Mapper error: #{e.message}, falling back to original record"
105+
record
106+
end
102107
else
103108
record
104109
end
@@ -171,7 +176,6 @@ While `Transformation::Upcast` is pipeline-compatible and would work with our tr
171176
RubyEventStore::Mappers::PipelineMapper.new(
172177
RubyEventStore::Mappers::Pipeline.new(
173178
RubyEventStore::Mappers::Transformation::Upcast.new(upcast_map),
174-
RubyEventStore::Mappers::Transformation::DomainEvent.new,
175179
RubyEventStore::Mappers::Transformation::SymbolizeMetadataKeys.new,
176180
RubyEventStore::Mappers::Transformation::PreserveTypes.new
177181
)

0 commit comments

Comments
 (0)