Evolving software systems includes data schema
changes, and because of those schema changes data has to be
converted. Converting data between two different schemas while
continuing the operation of the system is a challenge when that
system is expected to be available always. Data conversion in
event sourced systems introduces new challenges, because of
the relative novelty of the event sourcing architectural pattern,
because of the lack of standardized tools for data conversion, and
because of the large amount of data that is stored in typical event
stores. This paper addresses the challenge of schema evolution
and the resulting data conversion for event sourced systems. First
of all a set of event store upgrade operations is proposed that
can be used to convert data between two versions of a data
schema. Second, a set of techniques and strategies that execute
the data conversion while continuing the operation of the system
is discussed. The final contribution is an event store upgrade
framework that identifies which techniques and strategies can
be combined to execute the event store upgrade operations
while continuing operation of the system. Two utilizations of
the framework are given, the first being as decision support in
upfront design of an upgrade system for event sourced systems.
The framework can also be utilized as the description of an
automated upgrade system that can be used for continuous
deployment. The event store upgrade framework is evaluated in
interviews with three renowned experts in the domain and has
been found to be a comprehensive overview that can be utilized
in the design and implementation of an upgrade system. The
automated upgrade system has been implemented partially and
applied in experiments.