Seeding EventStore from Legacy Data

Just looking for some advice on how you might seed EventStore from legacy data (contained in an Oracle database).

For example, we have a Product table in the database with 60+ fields (not 3NF by any means!) Now, I can’t imagine that we would publish an initial event that contains all of those fields. Rather, I’m certain we would want to model our events as much more fine-grained.

Does anyone have experience in moving to event sourcing when your starting point was, for example, a relational database?

You have two choices. I have always said that everything you need to
know can be learned from accountants.

You can either bring over a snapshot event (ProductInitialized) or you
can try to reverse engineer the history of those things in the other
database to look like what your usecases look like after. Snapshots
are generally easier and you can't always perfectly reverse engineer
history. Generally this is a decision made on an aggregate by
aggregate basis

You must know some sagacious accountants. :wink:

I think we’ll look at taking the snapshot route and publish each product snapshot to its own stream which I suspect will end up holding the product aggregate events.

Thanks again.