Date of Award
Master of Science in Software Engineering
Washkewicz College of Engineering
In today’s distributed software ecosystem, we have witnessed a broad exhibition of notable approaches to software architecture. Traditionally, these approaches have centered around persisting a system’s current state. Rather than adhere to these criteria, two modern architectures, Command Query Responsibility Segregation (CQRS) and Event Sourcing have inspired us to persist the interactions of the software actor as replayable events which describe the history of their input data.
While CQRS and Event Sourcing allow for considerable benefits in many types of
systems, maintaining parallel realities (multiple snapshots of history deriving from a single parent history) is generally regarded as too complex for maintainability.
In our pursuit to achieve parallel realities in Event Sourcing systems, we established
Command Sourcing, a superset of the two aforementioned architectures. Leveraging
Command Sourcing, we effectively demonstrate maintainable parallel realities as part of a collection of architectural guidelines, data structures, and algorithms. By further applying Command Sourcing and researching the algorithms that belong in these systems, we present solutions to related complex milestones such as merging realities, reality optimization, conflict resolution, and aggregate duplication.
Eschmann, Ehren Thomas, "Maintaining Parallel Realities in CQRS and Event Sourcing" (2017). ETD Archive. 962.