THEORETICAL FOUNDATIONS OF EVENT TRACKING IN DISTRIBUTED SYSTEMS
DOI:
https://doi.org/10.32782/tnv-tech.2024.6.3Keywords:
distributed systems, microservice architecture, event tracking, span, trace, baggage, sampling, monitoring, asynchronous processing, context propagationAbstract
The article explores the theoretical foundations and key aspects of event tracking in distributed systems, which is becoming particularly relevant in the context of the rapid development of microservice architecture. It analyzes the main characteristics and features of microservice architecture, including its advantages and disadvantages compared to monolithic architecture. It has been determined that the microservice approach, despite its advantages in terms of development flexibility and scalability, creates additional challenges in the context of monitoring and event tracking due to the system's distributed nature. The key concepts of event tracking systems are revealed, including the concept of "span" as a basic unit of tracking, "trace" for tracking the complete request path, "baggage" for transmitting metadata between services, "tags" for providing context, and "sampling" for optimizing system load. Different approaches to sampling are analyzed in detail, including "head-based" and "tailbased" methods, as well as their features and application cases. The architecture of modern event tracking systems, which consists of five main components: middleware, context propagation mechanism, trace storage system, data collector, and analysis interface, is studied. Particular attention is paid to context propagation mechanisms and their role in ensuring effective event tracking in distributed systems. It has been determined that an effective event-tracking system should ensure minimal impact on the performance of core business processes, which is achieved through asynchronous processing of monitoring data and optimized mechanisms for their collection and storage. The research results have practical significance for software developers and architects working with microservice architectures, which require practical tools for monitoring and diagnosing distributed systems.
References
Swoyer S., Loukides M. Microservices Adoption in 2020. URL: https://www.oreilly.com/radar/microservices-adoption-in-2020 (дата звернення: 20.12.2024).
Fowler M., Lewis J. Microservices a definition of this new architectural term. 2014. URL: https://www.martinfowler.com/articles/microservices.html (дата звернення: 20.12.2024).
Lewis J. Micro services – Java, the Unix Way. 2012. URL: http://2012.33degree.org/talk/show/67 (дата звернення: 20.12.2024).
Kharenko A. Monolithic vs. Microservices Architecture. 2015. URL: https://articles.microservices.com/monolithic-vs-microservices-architecture-5c4848858f59 (дата звернення: 20.12.2024).
OpenTracing API docs. What is a Span? 2022. URL: https://opentracing.io/docs/overview/spans (дата звернення: 20.12.2024).
Schkuro Y. Mastering Distributed Tracing: Analyzing performance in microservices and complex systems. Birmingham : Packt Publishing, 2019. 372 p. https://www.oreilly.com/library/view/mastering-distributed-tracing/9781788628464/
Shkuro Y. Embracing context propagation. 2019. URL: https://medium.com/jaegertracing/embracing-context-propagation-7100b9b6029a (дата звернення: 20.12.2024).
Robert Heinrich, André van Hoorn, Holger Knoche, Fei Li, Lucy Ellen Lwakatare, Claus Pahl, Stefan Schulte, and Johannes Wettinger. 2017. Performance Engineering for Microservices: Research Challenges and Directions. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion (ICPE '17 Companion). Association for Computing Machinery, New York, NY, USA, 223–226. https://doi.org/10.1145/3053600.3053653
André de Camargo, Ivan Salvadori, Ronaldo dos Santos Mello, and Frank Siqueira. 2016. An architecture to automate performance tests on microservices. In Proceedings of the 18th International Conference on Information Integration and Webbased Applications and Services (iiWAS '16). Association for Computing Machinery, New York, NY, USA, 422–429. https://doi.org/10.1145/3011141.3011179
Holger Knoche. 2016. Sustaining Runtime Performance while Incrementally Modernizing Transactional Monolithic Software towards Microservices. In Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering (ICPE '16). Association for Computing Machinery, New York, NY, USA, 121–124. https://doi.org/10.1145/2851553.2892039
T. Salah, M. Jamal Zemerly, Chan Yeob Yeun, M. Al-Qutayri and Y. Al-Hammadi, "The evolution of distributed systems towards microservices architecture," 2016 11th International Conference for Internet Technology and Secured Transactions (ICITST), Barcelona, Spain, 2016, pp. 318–325, doi: 10.1109/ICITST.2016.7856721.