Cronus Documentation
  • Introduction
  • Getting Started
    • Quick Start
      • Setup
      • Persist First Event
      • Explore Projections
  • Cronus Framework
    • Concepts
      • Domain Driven Design
      • Event Sourcing
      • Command Query Responsibility Segregation
    • Domain Modeling
      • Bounded Context
      • Multitenancy
      • Aggregate
      • Entity
      • Value Object
      • IDs
      • Published Language
      • Messages
        • Commands
        • Events
        • Public Events
        • Signals
      • Handlers
        • Application Services
        • Sagas
        • Projections
        • Ports
        • Triggers
        • Gateways
    • Event Store
      • EventStore Player
      • Migrations
        • Copy EventStore
    • Workflows
    • Indices
    • Jobs
    • Cluster
    • Messaging
      • Serialization
    • Configuration
    • Unit testing
Powered by GitBook
On this page
  • What is data migration?
  • Challenges
  • How to do

Was this helpful?

Export as PDF
  1. Cronus Framework
  2. Event Store

Migrations

What is data migration?

Data migration is the process of moving data from one system to another. And there are many reasons why a system may require such a move. To name most common ones:

  • Natural system evolution which requires the data to be optimized for performance or maintainability.

  • Legal issues where some parts of the data have to be deleted or encrypted

  • Bad data created by a bug in the system

  • Business reason. When businesses merge or split.

It is important that the business value of the data is not changed during the process.

There are many different strategies when and how to do data migration. You must carefully plan and execute because damages could be significant.

Challenges

Depending on the data volume the migration process could take hours, even days. During that time there are many things which could fail and corrupt the data in a irreversible way. To avoid such scenarios you should always migrate the data into a new storage repository.

Always migrate the data into a new storage repository.

Make sure the migration process does not overwhelm the live system. You should be in control when the data is being migrated so you could pause the migration during peek times of the live system. To achieve this, use a separate process to run data migration. Always keep in mind that migrating data takes from your system resources and you must account for that.

Use a separate process to run data migration.

When you are migrating a

How to do

  1. Create a separate process which migrates the existing data into the new data repository

  2. Live system must push any new data to the migration service. Could be easily achieved by sending it to a message broker.

PreviousEventStore PlayerNextCopy EventStore

Last updated 3 years ago

Was this helpful?