Abstract
Workload intensity in terms of arrival rate and think-time can be used accurately simulate system performance in traditional systems. Most systems treat individual requests on a standalone basis and resource demands typically do not vary too significantly, which in most cases can be addressed as a parametric dependency. New frameworks such as Command Query Responsibility Segregation and Event Sourcing change the paradigm, where request processing is both parametric dependent and dynamic, as the history of changes that have occurred are replayed to construct the current state of the system. This makes every request unique and difficult to simulate. While traditional systems are studied extensively in the scientific community, the latter is still new and mainly used by practitioners. In this work, we study one such industrial application using Command Query Responsibility Segregation and Event Sourcing frameworks. We propose new workload patterns suited to define the dynamic behavior of these systems, define various architectural patterns possible in such systems based on domain-driven design principles, and create analytical performance models to make predictions. We verify the models by making measurements on an actual application running similar workloads and compare the predictions. Furthermore, we discuss the suitability of the architectural patterns to different usage scenarios and propose changes to architecture in each case to improve performance.
| Original language | English |
|---|---|
| Title of host publication | ICPE '20: Proceedings of the ACM/SPEC International Conference on Performance Engineering |
| Publisher | Association for Computing Machinery |
| Pages | 238-245 |
| Number of pages | 8 |
| ISBN (Print) | 9781450369916 |
| DOIs | |
| Publication status | Published - 20 Apr 2020 |
Keywords
- Command-query responsibility segregation
- Domain-driven design
- Event sourcing
- Software architecture variation
- Software performance engineering