Această lucrare de master cuprinde 4 capitole și se extinde pe parcursul a 60 pagini, prezentând o analiză comparativă între arhitectura tradițională CRUD și abordările moderne bazate pe CQRS și Event Sourcing. Structura lucrării este concepută astfel încât să combine fundamentarea teoretică, implementarea practică și evaluarea experimentală a performanței și scalabilității. În capitolul “Fundamente teoretice” sunt definite noțiunile de arhitectură software, sunt prezentate principalele atribute de calitate, iar apoi sunt descrise modelele arhitecturale analizate ulterior: arhitectura stratificată, modelul CRUD, modelul CQRS și modelul Event Sourcing. Capitolul se încheie cu o sinteză comparativă între CRUD, CQRS și Event Sourcing, evidențiind avantajele și limitările fiecărui model. În capitolul “Proiectarea și implementarea prototipurilor software” se descrie mediul de dezvoltare, uneltele utilizate și structura implementărilor realizate. Sunt prezentate cele trei prototipuri arhitecturale: implementarea CRUD, implementarea CQRS cu o singură bază de date și implementarea CQRS cu baze de date distincte pentru scriere și citire. De asemenea, este descris modul în care Event Sourcing a fost integrat în arhitectura CQRS pentru a permite reconstrucția stării istorice a sistemului. Capitolul “Metodologia de testare și scenarii experimentale” definește criteriile de evaluare utilizate în experimente: performanță, scalabilitate și capacitatea de recuperare. Sunt prezentate seturile de date folosite în testele de performanță, scenariile de testare pentru operațiile de scriere și citire, precum și procedurile de măsurare a timpilor de execuție. Tot aici sunt descrise testele de scalabilitate, în care s-au măsurat latențele, numărul de cereri procesate pe secundă și numărul de request-uri eșuate în cadrul unui test de 8 minute, pentru un trafic crescut de la 20 la 150 de utilizatori virtuali, aplicat atât implementării CRUD cât și celei CQRS. Instrumentele de colectare k6, Grafana, InfluxDB sunt prezentate împreună cu metodologia de interpretare a datelor. Capitolul “Analiza rezultatelor și recomandări” compară în mod detaliat performanțele arhitecturilor CRUD și CQRS în toate scenariile de testare. Rezultatele evidențiază avantajele CQRS în operațiile citire și în scenariile de scalabilitate ridicată, precum și superioritatea sa în ceea ce privește reconstrucția stării sistemului prin Event Sourcing. Capitolul se încheie cu recomandări privind alegerea arhitecturii în funcție de contextul aplicației și de cerințele non-funcționale.
This master's thesis consists of 4 chapters and extends over 60 pages, presenting a comparative analysis between the traditional CRUD architecture and modern approaches based on CQRS and Event Sourcing. The structure of the paper is designed to combine theoretical foundation, practical implementation and experimental evaluation of performance and scalability. In the chapter "Theoretical Foundations" the notions of software architecture are defined, the main quality attributes are presented, and then the architectural models analyzed later are described: layered architecture, CRUD model, CQRS model and Event Sourcing model. The chapter concludes with a comparative synthesis between CRUD, CQRS and Event Sourcing, highlighting the advantages and limitations of each model. In the chapter "Design and implementation of software prototypes" the development environment, the tools used and the structure of the implementations are described. The three architectural prototypes are presented: CRUD implementation, CQRS implementation with a single database and CQRS implementation with distinct databases for writing and reading. It also describes how Event Sourcing was integrated into the CQRS architecture to allow the reconstruction of the historical state of the system. The chapter “Test methodology and experimental scenarios” defines the evaluation criteria used in the experiments: performance, scalability and recovery capacity. The datasets used in the performance tests, the test scenarios for writing and reading operations, as well as the procedures for measuring execution times are presented. The scalability tests are also described here, in which latencies, the number of requests processed per second and the number of failed requests were measured within an 8-minute test, for an increased traffic from 20 to 150 virtual users, applied to both the CRUD and CQRS implementations. The collection tools k6, Grafana, InfluxDB are presented together with the data interpretation methodology. The chapter “Results Analysis and Recommendations” compares in detail the performances of CRUD and CQRS architectures in all test scenarios. The results highlight the advantages of CQRS in read operations and in high-scalability scenarios, as well as its superiority in terms of system state reconstruction through Event Sourcing. The chapter concludes with recommendations on choosing the architecture depending on the application context and non-functional requirements.