Escalabilidade em sistemas web: uma análise comparativa entre Java e Rust em arquitetura monolítica

dc.contributor.advisor1 Sousa, Aislan Rafael Rodrigues de
dc.contributor.advisor1Lattes http://lattes.cnpq.br/7997723359146798pt_BR
dc.creator Santos, Luis Henrique de Moura
dc.creator.Lattes https://lattes.cnpq.br/7319230851604681pt_BR
dc.date.accessioned 2026-07-07T23:49:07Z
dc.date.available 2026-07-07T23:49:07Z
dc.date.issued 2026
dc.description.abstract The expansion of web applications has intensified the pursuit of scalability, and monolithic architecture remains the starting point for many systems. As load increases, migration toward distributed architectures is often assumed to be inevitable, overlooking an earlier variable: the execution ecosystem of the language, encompassing its memory management model, framework, and concurrency model. This work compares two functionally equivalent implementations of a web address shortening service, one in Java with Spring Boot and embedded Tomcat server, and another in Rust with Actix-web on the asynchronous Tokio runtime, subjected to progressive loads of up to 1,500 requests per second in containers limited to half a processing core and 512 megabytes of memory. Three garbage collection algorithms of the Java virtual machine were evaluated as an independent variable. Results show that the Rust implementation maintained a stable median latency between 260 and 272 microseconds with a fixed footprint of 7 megabytes, while the default Java configuration exhibited 95th-percentile latency peaks of up to 196 milliseconds and approximately 420 megabytes of memory consumption. The latest-generation concurrent collector, designed for minimal latency, failed the acceptance thresholds in all three runs due to contention over the fractional processing capacity. The sequential collector, the simplest available, outperformed the other Java configurations in latency, variance, and memory consumption. Within the investigated scenario, the choice of execution ecosystem and collection algorithm proved to be a determining factor in the performance limits of the monolith before architectural migration.pt_BR
dc.description.resumo A expansão das aplicações web intensificou a busca por escalabilidade, e a arquitetura monolítica permanece como ponto de partida para muitos sistemas. Diante do aumento da carga, presume-se que a migração para arquiteturas distribuídas seja inevitável, ignorando-se uma variável anterior: o ecossistema de execução da linguagem, que compreende o modelo de gerenciamento de memória, o framework e o modelo de concorrência. Este trabalho compara duas implementações funcionalmente equivalentes de um serviço de encurtamento de endereços web, uma em Java com Spring Boot e servidor embarcado Tomcat, e outra em Rust com Actix-web sobre runtime assíncrono Tokio, submetidas a cargas progressivas de até 1.500 requisições por segundo em containers limitados a meio núcleo de processamento e 512 megabytes de memória. Três algoritmos de coleta de lixo da máquina virtual Java foram avaliados como variável independente. Os resultados mostram que a implementação em Rust manteve latência mediana estável entre 260 e 272 microssegundos com consumo fixo de 7 megabytes, enquanto a configuração Java padrão registrou picos de latência no percentil 95 de até 196 milissegundos e consumo de aproximadamente 420 megabytes. O coletor concorrente de última geração, projetado para latência mínima, falhou nos critérios de aceitação nas três execuções devido à contenção por processamento fracionado. O coletor sequencial, o mais simples disponível, superou as demais configurações Java em latência, variância e consumo de memória. No cenário investigado, a escolha do ecossistema de execução e do algoritmo de coleta mostrou-se fator determinante nos limites de desempenho do monólito antes de migração arquitetural.pt_BR
dc.identifier.citation SANTOS, Luis Henrique de Moura. Escalabilidade em sistemas web: uma análise comparativa entre Java e Rust em arquitetura monolítica. Orientador: Aislan Rafael Rodrigues de Sousa. 2026. 14 f. Trabalho de Conclusão de Curso (Tecnologia em Análise e Desenvolvimento de Sistemas) - Instituto Federal do Piauí, Campus Teresina Central, Teresina, 2026pt_BR
dc.identifier.uri https://bia.ifpi.edu.br/jspui/handle/123456789/5654
dc.language porpt_BR
dc.publisher Instituto Federal de Educação, Ciência e Tecnologia do Piauípt_BR
dc.publisher.country Brasilpt_BR
dc.publisher.department Campus Teresina Centralpt_BR
dc.publisher.initials IFPIpt_BR
dc.rights Acesso Abertopt_BR
dc.subject Escalabilidadept_BR
dc.subject Arquitetura monolíticapt_BR
dc.subject Gerenciamento de memóriapt_BR
dc.subject Coleta de lixopt_BR
dc.subject Desempenho sob cargapt_BR
dc.subject.cnpq CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO::ARQUITETURA DE SISTEMAS DE COMPUTACAOpt_BR
dc.subject.cnpq CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::LINGUAGENS DE PROGRAMACAOpt_BR
dc.title Escalabilidade em sistemas web: uma análise comparativa entre Java e Rust em arquitetura monolíticapt_BR
dc.type Trabalho de Conclusão de Cursopt_BR

Files

Original bundle

Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
2026_termo_lhsantos.pdf
Size:
249.15 KB
Format:
Description:
Loading...
Thumbnail Image
Name:
2026_tcc_lhsantos.pdf
Size:
162.76 KB
Format:
Adobe Portable Document Format
Description:

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.82 KB
Format:
Item-specific license agreed upon to submission
Description: