Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/110625
Title: Creation of a Replicated Event Sourcing Application
Other Titles: Criação de uma Aplicação Event Sourcing Replicada
Authors: Leite, Gustavo Miguel Martins
Orientador: Araújo, Filipe João Boavida Mendonça Machado de
Keywords: Estado; Event Sourcing; State; Event Sourcing
Issue Date: 20-Sep-2023
Project: info:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDP/00326/2020/PT
Serial title, monograph or event: Creation of a Replicated Event Sourcing Application
Place of publication or event: DEI-FCTUC
Abstract: O armazenamento tradicional de dados tem tipicamente o estado atual dos dados armazenados numa base de dados SQL ou NoSQL, e quando ocorre umatransação, esses dados são atualizados. O objetivo principal é armazenar o estado atual, e mesmo que funcione bem, pode ser limitativo se for necessária maisinformação do que os valores atuais. A informação, tal como as transações que levam aos valores atuais, é perdida. Ainda que seja possível ter registos históricos e registos de transações no armazenamento tradicional de dados, é uma possibilidade de se tornar uma tarefa complexa de gestão e utilização.Event Sourcing é uma forma diferente de armazenamento de dados onde, em vez de armazenar o estado atual, é a sequência de transações que é armazenada. Oestado atual é construído através do processamento dos eventos, e não se perdem dados, o que dá ao Event Sourcing capacidades robustas de auditoria e análise.O objetivo desta dissertação é enfrentar o desafio de pegar numa aplicação centralizada de Event Sourcing e replicá-la para a tornar mais fiável e disponível emdiferentes regiões. Para atingir este objetivo, uma aplicação com armazenamento de eventos replicado teve de ser desenvolvida e colocada na Internet para ter osistema distribuído por várias áreas do mundo.Como resultado, este trabalho apresenta a arquitetura do sistema replicado criado em diferentes graus de especificidade, juntamente com tecnologias utilizadas, incluindo SpringBoot, Axon e MongoDB. Além disso, este documento apresenta também uma análise de desempenho das velocidades das operações de escrita e de leitura da referida aplicação colocada na nuvem. Estes resultados recolhidos a partir dos testes de desempenho revelaram-se encorajadores para os sistemasEvent Sourcing geo-replicados, abrindo novos caminhos para futuras aplicações.
Traditional data storage typically has the current state of data stored in a SQL or NoSQL database, and when a transaction occurs, that data is updated. Theprimary objective is to store the current state, and even though it works, it can be limiting if more information than the current values is needed. Information such as what transactions lead to the current values is lost. Even though it is possible to have historical registration and transaction logs in traditional data storage, it is a possibility that it can become a complex task to manage and use.Event Sourcing is a different way of storing data where instead of storing the current state, it is the sequence of transactions that is stored. The current state is built by replaying the events, and no data is lost, which gives event sourcing robust audit and analytical capabilities.This dissertation’s objective is to tackle the challenge of taking a centralized Event Sourcing application and replicating it to make it more reliable and available across different regions. To achieve this goal, an application with a replicated event store had to be developed and placed on the internet to have the system distributed across multiple areas of the world.As a result, this work presents the architecture of the created replicated system, along with the used technologies, including SpringBoot, Axon and MongoDB. Inaddition, this document also presents a performance analysis of the write and read operations speeds of the said application placed on the cloud. These resultsgathered from the performance testing proved encouraging for event-sourced geo-replicated systems, opening new ways for future applications.
Description: Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
URI: https://hdl.handle.net/10316/110625
Rights: openAccess
Appears in Collections:UC - Dissertações de Mestrado

Files in This Item:
Show full item record

Page view(s)

13
checked on Apr 30, 2024

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons