Load Test pada Microservice yang menerapkan CQRS dan Event Sourcing
DOI:
https://doi.org/10.24002/jbi.v12i2.4749Abstract
Abstract. Load Test on Microservice implementing CQRS and Event Sourcing. In developing an application, determining the architecture is a very important job. This research implements microservice architecture with CQRS pattern and event sourcing on OpenAPI, API-driven and event-driven integration between services. Applying the right architecture can make the performance of the application faster. There are two test activities that are useful to find out the difference in the frequency of requests for APIdriven and event-driven that can affect response time, error rate and throughput, as well as analyze which architecture has better performance. The test is carried out using a load test technique using the JMeter tool. This study proves that microservices with CQRS and Event Sourcing patterns have 3.7% faster performance compared to API-driven, and communication between services has no effect on error rate and throughput.
Keywords: microservice, load test, CQRS, event sourcing, software architecture
Abstrak. Dalam pengembangan sebuah aplikasi, penentuan arsitektur merupakan pekerjaan yang sangat penting. Penelitian ini mengimplementasikan arsitektur microservice dengan pola CQRS dan event sourcing pada OpenAPI, integrasi antar service berbasis API-driven dan event-driven. Penerapan arsitektur yang tepat dapat membuat performansi dari aplikasi menjadi lebih cepat. Terdapat dua aktivitas pengujian yang berguna untuk mengetahui perbedaan frekuensi request pada API-driven dan eventdriven yang dapat mempengaruhi response time, error rate dan juga throughput, serta menganalisis arsitektur mana yang memiliki performa yang lebih baik. Pengujian dilakukan dengan teknik load test yang menggunuakan tool JMeter. Penelitian ini membuktikan bahwa microservice dengan pola CQRS dan Event Sourcing memiliki performansi lebih cepat 3,7% dibandingkan dengan API-driven, serta komunikasi antar service tidak berpengaruh pada error rate dan throughput.
Kata Kunci: microservice, load Test, CQRS, event sourcing, software arsitektur
References
H. Suryotrisongko, D. P. Jayanto, and A. Tjahyanto, “Design and Development of Backend Application for Public Complaint Systems Using Microservice Spring Boot,” Procedia Comput. Sci., vol. 124, pp. 736–743, 2017, doi: 10.1016/j.procs.2017.12.212.
A. Akbulut and H. G. Perros, “Software Versioning with Microservices through the API Gateway Design Pattern,” 2019 9th Int. Conf. Adv. Comput. Inf. Technol. ACIT 2019 - Proc., pp. 289–292, 2019, doi: 10.1109/ACITT.2019.8779952.
and M. O. Takanori Ueda, Takuya Nakaike, “Workload Characterization for Microservices,” no. c, pp. 85–94, 2016.
F. Rademacher, S. Sachweh, and A. Zundorf, “Differences between model-driven development of service-oriented and microservice architecture,” Proc. - 2017 IEEE Int. Conf. Softw. Archit. Work. ICSAW 2017 Side Track Proc., pp. 38–45, 2017, doi: 10.1109/ICSAW.2017.32.
A. Debski, B. Szczepanik, and M. Malawski, “In Search for a Scalable & Reactive Architecture of a Cloud Application : CQRS and Event Sourcing,” pp. 1–8, 2016.
G. Maddodi and S. Jansen, “Responsive Software Architecture Patterns for Workload Variations: A Case-study in a CQRS-based Enterprise Application,” CEUR Workshop Proc., vol. 2047, no. 2005, p. 30, 2017.
Z. Long, “Improvement and Implementation of a High Performance CQRS Architecture,” Proc. - 2017 Int. Conf. Robot. Intell. Syst. ICRIS 2017, pp. 170–173, 2017, doi: 10.1109/ICRIS.2017.49.
Y. Zhong, W. Li, and J. Wang, “Using event sourcing and CQRS to build a high performance point trading system,” ACM Int. Conf. Proceeding Ser., pp. 16–19, 2019, doi: 10.1145/3317614.3317632.
R. Laigner et al., “From a Monolithic Big Data System to a Microservices Event-Driven Architecture,” Proc. - 46th Euromicro Conf. Softw. Eng. Adv. Appl. SEAA 2020, no. i, pp. 213–220, 2020, doi: 10.1109/SEAA51224.2020.00045.
S. Suresh Kumar and P. M. Mallikarjuna Shastry, “Database-per-service for e-learning system with micro-service architecture,” Proc. 2017 Int. Conf. Smart Technol. Smart Nation, SmartTechCon 2017, pp. 705–708, 2018, doi: 10.1109/SmartTechCon.2017.8358462.
D. I. Permatasari, “Pengujian Aplikasi menggunakan metode Load Testing dengan Apache JMeter pada Sistem Informasi Pertanian,” J. Sist. dan Teknol. Inf., vol. 8, no. 1, p. 135, 2020, doi: 10.26418/justin.v8i1.34452.
R. Abbas, Z. Sultan, and S. Nazir B, “Comparative Analysis of Automated Load Testing Tools: Apache JMeter, Microsoft Visual Studio (TFS), LoadRunner, Siege,” Int. Conf. Commun. Technol., vol. 7, no. 6, pp. 117–130, 2017.
R. Gao, Z. M. Jiang, C. Barna, and M. Litoiu, “A Framework to Evaluate the Effectiveness of Different Load Testing Analysis Techniques,” Proc. - 2016 IEEE Int. Conf. Softw. Testing, Verif. Validation, ICST 2016, pp. 22–32, 2016, doi: 10.1109/ICST.2016.9.
R. Xu, W. Jin, and D. Kim, “Microservice security agent based on API gateway in edge computing,” Sensors (Switzerland), vol. 19, no. 22, pp. 1–17, 2019, doi: 10.3390/s19224905.
K. Gos and W. Zabierowski, “The Comparison of Microservice and Monolithic Architecture,” 2020 IEEE 16th Int. Conf. Perspect. Technol. Methods MEMS Des. MEMSTECH 2020 - Proc., pp. 150–153, 2020, doi: 10.1109/MEMSTECH49584.2020.9109514.
R. Mufrizal and D. Indarti, “Refactoring Arsitektur Microservice Pada Aplikasi Absensi PT. Graha Usaha Teknik,” J. Nas. Teknol. dan Sist. Inf., vol. 5, no. 1, pp. 57–68, 2019, doi: 10.25077/teknosi.v5i1.2019.57-68.
S. Han and J.-I. Choi, “Data Processing System Using CQRS Pattern and NoSQL in V2X Environment,” Int. J. Smart Device Appl., vol. 8, no. 1, pp. 1–8, 2020, doi: 10.21742/ijsda.2020.8.1.01.
L. H. N. Villaça, L. G. Azevedo, and F. Baio, “Query strategies on polyglot persistence in microservices,” Proc. ACM Symp. Appl. Comput., pp. 1725–1732, 2018, doi: 10.1145/3167132.3167316.
S. O. Diakov, T. E. Zubrei, and A. S. Samoidiuk, “Application of Event Sourcing and CQRS in Distributed Systems,” no. 34, pp. 16–22, 2019.
R. Boncea, A. Zamfiroiu, and I. Bacivarov, “A scalable architecture for automated monitoring of microservices,” Acad. Econ. Stud. Econ. Informatics, vol. 18, no. 1, pp. 13–22, 2018, [Online]. Available: https://search.proquest.com/docview/2172010739?accountid=14542%0Ahttp://dn3nh3
eq7d.search.serialssolutions.com/?genre=article&sid=ProQ:&atitle=A+scalable+architecture+for+automated+monitoring+of+microservices&title=Academy+of+Economic+Studies.+Economy+Inf.
A. Akbulut and H. G. Perros, “Performance Analysis of Microservice Design Patterns,” IEEE Internet Comput., vol. 23, no. 6, pp. 19–27, 2019, doi: 10.1109/MIC.2019.2951094.
M. Stefanko, “The Saga Pattern in a Reactive Microservices Environment,” no. Icsoft, pp. 483–490, 2019, doi: 10.5220/0007918704830490.
Downloads
Published
Issue
Section
License
Copyright of this journal is assigned to Jurnal Buana Informatika as the journal publisher by the knowledge of author, whilst the moral right of the publication belongs to author. Every printed and electronic publications are open access for educational purposes, research, and library. The editorial board is not responsible for copyright violation to the other than them aims mentioned before. The reproduction of any part of this journal (printed or online) will be allowed only with a written permission from Jurnal Buana Informatika.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.