RESUMO
A arquitetura monolítica tradicional é construída como uma unidade lógica única que agrega
vários serviços para fornecer funcionalidades de negócios. No entanto, a arquitetura monolítica
pode apresentar as seguintes desvantagens: (i) dificuldade de compreender e modificar ao longo
do tempo; (ii) dimensionamento ineficiente dos recursos computacionais; e (iii) dificuldade
em aplicar pequenas modificações. Neste domínio, a arquitetura de microservices propõe uma
solução para dimensionar recursos computacionais de forma eficiente e resolver outros problemas
presentes na arquitetura monolítica. Embora a arquitetura de microservices ofereça inúmeros
benefícios, há custos associados à sua adoção, como desafios para executar processos de negócios
distribuídos entre diferentes microservices. Neste contexto, apesar de existir abordagens recentes
para a composição de microservices, como Medley e Microflows, essas soluções possuem
limitações em lidar com a localização dinâmica de microservices, pois exigem um registro prévio
dos microservices necessários para realizar composições. Além disso, essas soluções não estão
disponíveis tanto para a indústria quanto para a academia. Para preencher essa lacuna, esta
dissertação propõe Beethoven, uma plataforma leve para composição de microservices que é
composta de uma arquitetura de referência e uma DSL de orquestração baseada em processos de
negócios declarativos. A arquitetura de referência segue uma abordagem orientada a eventos
e foi instanciada usando o modelo de atores e o ecossistema fornecidos pelo Spring Cloud
Netflix. Para demonstrar a viabilidade da plataforma de Beethoven, foram desenvolvidas duas
aplicações de exemplo. Além disso, para investigar a avaliação de desempenho da plataforma,
um quasi-experimento controlado foi conduzido. Todos os artefatos produzidos como parte dessa
dissertação estão disponíveis no GitHub.
Palavras-chave: Arquitetura Orientada a Eventos. Arquitetura de Referência. Composição de
Microservice. Orquestração.