Legacy systems pose challenges like risks of breaking, unclear processes, and difficulty in making changes.
Migrating to event sourcing from legacy systems doesn't require a complete rewrite.
The migration guide involves moving a 500-table Rails monolith to event sourcing incrementally.
Phase 1 involves identifying pain points like audit-heavy domains and adding event publishing to legacy code.
Phase 2 includes implementing a dual-write architecture by building parallel projections and gradually shifting reads.
Phase 3 focuses on replacing writes with commands, retiring legacy code, and handling migration pitfalls like event schema changes and performance regressions.
Key steps include laying the foundation, implementing a dual-write architecture, the big flip to replace writes, and retiring legacy code.
Migration pitfalls include event schema changes, projection drift, and performance regressions.
The guide suggests aborting migration if the team lacks event-sourcing experience, faces resistance to incremental migration, or expects a quick rewrite.