Com o crescente aumento da complexidade dos sistemas corporativos, surgiu um novo termo, Microsserviços. Este termo surgiu nos últimos anos para descrever uma maneira específica de desenvolver aplicações com o isolamento de responsabilidades sobre o sistema como um todo. Microsserviços, por ser uma arquitetura de pequenos projetos com um só foco, traz inúmeras vantagens, como independência de tecnologia para construir os módulos, possibilidade de mudança rápida em um único serviço sem necessidade de retestar e gerar um novo deploy para toda a aplicação, alta escalabilidade, etc. No contexto de banco de dados em sistemas monolíticos, transações utilizam o conjunto de propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) para garantir a integridade dos dados, já na arquitetura de microsserviços, os serviços devem estar desacoplados e, portanto, cada um pode ter seu próprio repositório de dados, apesar de algumas implementações utilizarem banco de dados relacional para isso, a grande maioria das aplicações baseadas em microsserviços utilizam bancos NoSQL. A implementação de transações que utilizam dados de múltiplos serviços acaba aumentando a complexidade do sistema, ao mesmo tempo que muitos dos bancos de dados não suportam protocolos de transações distribuídas. Sendo assim, este trabalho tem como propósito analisar os métodos de garantir a persistência de dados dentro de um sistema baseado na arquitetura de microsserviços assim como a avaliação de desempenho entre dois dos modelos analisados. Os resultados foram obtidos realizando uma sequência de testes sobre o modelo Event Sourcing e Saga, variando parâmetros como o número de requisições simultâneas e quantidades de instâncias de cada microsserviço. O modelo Event Sourcing apresentou melhor desempenho em todos os cenários, também melhorando proporcionalmente a performance em relação ao acréscimo de novas instâncias, enquanto o modelo Saga teve desempenho inferior e o aumento de performance ocorreu somente no primeiro acréscimo de instâncias. |