Rastreio e monitorização de Arquiteturas Orientadas a Eventos - Santos, André Vieira dos (2023)
Over the years, software architectures have undergone significant transformations, driven by the constant changes in market demands. The imperative to empower organizations and teams for independent and agile application development has culminated in the adoption of loosely coupled architectures that consist of small, independent services. Emphasizing an asynchronous communication methodology through events, this approach enhances flexibility and speed while also reducing the dependency between services and teams. Concurrently, the escalating requirements for robust, resilient, and highly available systems have propelled a heightened need for better observability, particularly in these systems. While fundamental techniques like logging, monitoring, and alerting are essential for individual services, they may fall short in the context of an event-driven architecture where services are independent of each other and possess resilience mechanisms such as clustering, load balancing, and data replication. With the adoption of such software architectures, organizations face difficulties in achiev ing sufficient visibility of end-to-end business flows that span across multiple services. This thesis explores this challenge, taking into account the difficulties identified in the implemen tation posed by existing resilience mechanisms, such as clustering, load balancing, and data replication strategies. The proposed solution addresses these challenges by introducing an easy-to-set-up, open source tracing solution designed to enable tracing in a pre-defined set of services. This solution aims to bridge the gap in observability within event-driven architectures, allowing organizations to overcome the limitations posed by these implementations. By leveraging distributed tracing tools, the proposed solution provides a comprehensive analysis of the ecosystem’s current state, offering insights and actionable data for improved monitoring and understanding of end-to-end business processes. In conclusion, the work done in this thesis contributes not only to the theoretical understand ing of observability challenges in dynamic software architectures but also provides a practical and accessible solution to enhance traceability in the context of event-driven architectures with resilience mechanisms. The open-source nature of the proposed solution promotes widespread adoption and collaboration within the software development community.