Development of an application framework using event sourcing with CQRS and DDD

Thesis title: Development of an application framework using event sourcing with CQRS and DDD
Author: Zima, Martin
Thesis type: Diploma thesis
Supervisor: Pecinovský, Rudolf
Opponents: Rais, Aziz Ahmad
Thesis language: English
Abstract:
The thesis develops a new software application framework with the use of event sourcing, command-query responsibility segregation and domain-driven design. First, it identifies typical application ar-chitectures used today and examines their weak spots. These discussed architectures are generally difficult to scale, integrate and test and their codebases are hard to maintain. In order to provide a better solution, the thesis thoroughly studies several emerging approaches to software design (event sourcing, command-query responsibility segregation and domain-driven design) and analyzes their potential in improvements of the old application architecture. The work discusses and proposes pos-sible approaches to their implementation. Consequently, an improved architecture for the new frame-work is specified. As a result, it delivers a complete software solution for writing enterprise server applications in C#/on .NET platform that are able to focus on the implementation of complex busi-ness domains and are able to deal with challenges of scalability, maintainability or integrations in service-oriented architectures. Finally, the author elaborates on the experience of using the frame-work in a real commercial software product.
Keywords: development; Revo; software; application; architecture; command-query responsibility segregation; domain-driven design; event sourcing; framework; pattern
Thesis title: Vývoj aplikačního frameworku s použitím event sourcingu, CQRS a DDD
Author: Zima, Martin
Thesis type: Diplomová práce
Supervisor: Pecinovský, Rudolf
Opponents: Rais, Aziz Ahmad
Thesis language: English
Abstract:
Práce se zabývá vývojem nového softwarového aplikačního frameworku za použití event sourcingu, principu command-query responsibility segregation a domain-driven designu. V první části jsou identifikovány typické architektury aplikaci používané dnes a jsou diskutovány jejich slabá místa a nevýhody. Aplikace postavené na těchto architekturách jsou obvykle obtížně škálovatelné, těžko se integrují a testují a jejich kódové báze jsou náročné na údržbu. Pro navržení lepšího řešení jsou zkou-mány nové metody návrhu softwaru (event sourcing, command-query responsibility segregation and domain-driven design) a je analyzován jejich potenciál z hlediska vylepšení původní architektury. Práce diskutuje a navrhuje řešení pro jejich implementaci, aby mohla následně specifikovat vylepše-nou architekturu nového frameworku. Výsledně je implementován nový aplikační framework, který umožňuje vývoj serverových podnikových aplikací v jazyku C#/na .NET platformě, které pracují s komplexními problémovými business doménami a splňují vysoké nároky v oblasti udržitelnosti, škálovatelnosti či integrací v service-oriented architekturách. V závěru autor rozebírá zkušenosti s použitím vyvinutého frameworku na reálném komerčním softwarovém produktu.
Keywords: command-query responsibility segregation; domain-driven design; vzor; architektura; event sourcing; framework; aplikace; Revo; software; vývoj

Information about study

Study programme: Aplikovaná informatika/Informační systémy a technologie
Type of study programme: Magisterský studijní program
Assigned degree: Ing.
Institutions assigning academic degree: Vysoká škola ekonomická v Praze
Faculty: Faculty of Informatics and Statistics
Department: Department of Information Technologies

Information on submission and defense

Date of assignment: 27. 10. 2017
Date of submission: 25. 4. 2018
Date of defense: 1. 6. 2018
Identifier in the InSIS system: https://insis.vse.cz/zp/63683/podrobnosti

Files for download

    Last update: