ARQUITETURA DE MICROSSERVIÇOS APLICADA A PLATAFORMA DE CRIPTOMOEDAS

MICROSERVICES ARCHITECTURE APPLIED TO A CRYPTOCURRENCY PLATFORM

REGISTRO DOI: 10.69849/revistaft/ni10202511212114


Wesley Luiz Emidio1
João Henrique Gião Borges2
Fabiana Florian3


Resumo: Este trabalho apresenta a aplicação da arquitetura de microsserviços no desenvolvimento de uma plataforma voltada ao consumo de dados de criptomoedas. A proposta teve como objetivo demonstrar como a divisão de um sistema em serviços independentes pode oferecer maior escalabilidade, flexibilidade e resiliência em comparação a arquiteturas monolíticas. Para a implementação, utilizou-se a linguagem Java e o framework Spring Boot, em conjunto com ferramentas como Eureka (Service Discovery) e Spring Cloud Gateway. O sistema foi integrado a um serviço externo de criptomoedas, evidenciando a capacidade de comunicação desacoplada por meio de APIs REST. Os resultados obtidos demonstram que a arquitetura de microsserviços permite a adição e atualização de serviços sem comprometer o funcionamento geral da aplicação, além de possibilitar escalabilidade seletiva conforme a demanda. Conclui-se que a abordagem adotada se mostra adequada para ambientes dinâmicos e de alta volatilidade, como o mercado de criptomoedas.

Palavras-chave:Arquitetura de microsserviços; Criptomoedas; Spring Boot; Service Discovery; API Gateway.

Abstract: This work presents the application of microservices architecture in the development of a platform focused on the consumption of cryptocurrency data. The proposal aimed to demonstrate how dividing a system into independent services can provide greater scalability, flexibility, and resilience compared to monolithic architectures. For the implementation, the Java language and the Spring Boot framework were used, together with tools such as Eureka (Service Discovery) and Spring Cloud Gateway. The system was integrated with an external cryptocurrency service, highlighting the ability of decoupled communication through REST APIs. The results show that the microservices architecture enables the addition and update of services without compromising the overall functioning of the application, while also allowing selective scalability according to demand. It is concluded that the adopted approach proves to be suitable for dynamic and highly volatile environments, such as the cryptocurrency market.

Key-words: Microservices architecture; Cryptocurrencies; Spring Boot; Service Discovery; API Gateway.

1 INTRODUÇÃO

A arquitetura de microsserviços tem ganhado destaque no desenvolvimento de sistemas modernos devido à sua capacidade de promover flexibilidade, escalabilidade e facilidade de manutenção em aplicações complexas. Diferente das arquiteturas monolíticas tradicionais, os microsserviços propõem a construção de aplicações por meio da divisão em pequenos serviços independentes, cada um responsável por uma funcionalidade específica e com capacidade de operar de forma autônoma. Essa arquitetura melhora a adaptação de mudanças, escalabilidade de acordo com o necessário.

O uso dessa arquitetura de microsserviços, demonstra o quanto é vantajoso lidar com ambientes com alta volatilidade como o mercado de criptomoedas, onde a constantes atualizações de preços e disponibilidades de APIs, e mudanças nas regras de negócio. Este tipo de arquitetura permite isolar funcionalidades críticas, como autenticação, consultas de mercados, gestão de carteiras e execução de ordens, garantindo que mudanças ou falhas em um serviço específico não comprometam o funcionamento da aplicação como um todo.

“Arquiteturas de microsserviços são tipicamente organizadas para que cada um tenha um trabalho muito específico, bem definido e sirva a um único propósito. Eles permitem deployment (subida em produção) independentes, ou seja, caso você precise subir uma nova versão de um serviço, isso não deveria afetar a disponibilidade dos outros serviços.”.(SILVEIRA.2021).

Há limitação no desenvolvimento de plataformas voltadas ao mercado cripto. O acesso restrito a dados de mercado em tempo real, geralmente disponibilizados por APIs pagas ou com planos gratuitos bastante limitados, esse acesso restrito.

A adoção de uma arquitetura de microsserviços construída em java com o framework Spring Boot facilita a manutenção e a evolução do sistema, devido ao baixo acoplamento e à alta coesão entre os módulos que compõem a solução. 

Nesse contexto, esse trabalho propõe desenvolver uma plataforma voltada para demonstração de valores e compra de criptomoedas como caso de uso prático para a aplicação da arquitetura de microsserviços.A proposta busca demonstrar como essa abordagem arquitetural pode solucionar desafios comuns enfrentados por aplicações que lidam com dados sensíveis, alta demanda por disponibilidade e necessidade de atualizações frequentes.

A arquitetura de microsserviços oferece soluções técnicas eficazes para contornar essa limitação, como a implementação de mecanismos de cache distribuído, sincronizações periódicas e agregação de múltiplas fontes de dados, mantendo a aplicação funcional e informativa mesmo em cenários com restrições de acesso a dados externos.

A arquitetura de microsserviços é uma abordagem robusta e escalável para o desenvolvimento de plataformas digitais em ambientes dinâmicos e com limitações de recursos externos. Por meio da divisão lógica dos serviços, é possível otimizar o desempenho do sistema, facilitar sua manutenção e evoluir continuamente a aplicação de acordo com o feedback dos usuários e as exigências do mercado.

2 REVISÃO BIBLIOGRÁFICA

Está seção apresenta os principais fundamentos teóricos necessários para o desenvolvimento deste trabalho, reunindo conceitos, definições e tecnologias que servem como base para a compreensão do sistema proposto. São abordados temas relacionados à linguagem Java, Interface de Programação de Aplicações (API), o framework Spring Boot, bem como o mecanismo de Service Discovery e API Gateway, amplamente utilizados em arquiteturas modernas baseadas em microsserviços.

2.1 Arquitetura de microsserviços

A arquitetura de microsserviços é um modelo de desenvolvimento de sistemas distribuídos que propõe a divisão de aplicações em pequenos serviços independentes, cada um responsável por uma funcionalidade específica e que se comunicam entre si por meio de APIs (NEWMAN, 2015). Essa abordagem contrasta com o modelo monolítico, oferecendo maior escalabilidade, facilidade de manutenção e implantação contínua.

Para aplicações que lidam com grandes volumes de dados e alta demanda — como plataformas financeiras e corretoras — os microsserviços representam uma solução eficiente e moderna. Eles permitem que diferentes partes do sistema (ex: autenticação, gerenciamento de carteira, processamento de ordens) sejam desenvolvidas, testadas e escaladas individualmente, aumentando a resiliência e a flexibilidade da aplicação (FOWLER; LEWIS, 2014).

2.2 Criptomoedas e mercado digital

As criptomoedas surgiram como uma inovação disruptiva no sistema financeiro tradicional, oferecendo uma alternativa descentralizada às moedas fiduciárias. O Bitcoin, criado por Satoshi Nakamoto em 2008, foi o primeiro ativo digital baseado em blockchain, com o objetivo de permitir transações seguras, transparentes e sem a necessidade de intermediários (ANTONOPOULOS, 2017). Desde então, o mercado evoluiu, dando origem a centenas de outras criptomoedas e a uma infraestrutura digital composta por corretoras, carteiras digitais, exchanges descentralizadas e smart contracts.

O crescimento do mercado cripto é impulsionado pela busca por alternativas financeiras que combinem agilidade, segurança e descentralização. No entanto, a complexidade técnica do ecossistema ainda representa uma barreira de entrada para novos investidores. A familiarização com termos como blockchain, tokens, mineração e carteiras digitais é essencial para a participação consciente nesse universo (NARAYANAN et al., 2016). Por isso, a criação de soluções tecnológicas mais acessíveis tem sido objeto de interesse tanto acadêmico quanto comercial.

“O mercado de criptomoedas é caracterizado pela descentralização e anonimato, permitindo transações diretas e eliminando intermediários tradicionais (bancos comerciais). Enquanto essa característica trouxe inovação e liberdade financeira, também deu origem a desafios significativos devido à falta de regulamentação. É necessário citar alguns dos dispositivos que tem a pretensão ou já regulam deste novo mercado e os novos desafios por ele apresentados. Embora a falta de regulamentação seja uma característica notável do mercado de criptomoedas, muitos países estão começando a adotar abordagens regulatórias para abordar os desafios”.(FAILLACE, Andre,2024).

2.3 Java

Java é uma linguagem de programação orientada a objetos criada em 1995 pela empresa Sun Microsystems, posteriormente adquirida pela Oracle Corporation. Desde sua criação, Java destacou-se por sua portabilidade, uma vez que os programas desenvolvidos podem ser executados em qualquer plataforma que possua a Java Virtual Machine (JVM).

Entre as principais características da linguagem, suas vantagens se destacam por ter segurança, robustez, e forte tipagem. Essas características fizeram de Java uma das linguagens preferidas para o desenvolvimento de aplicações corporativas.

2.4 Interface de programação e aplicações (APIs)

Uma interface de programação e aplicações, ou API (Application Programming Interface), é um conjunto de definições e protocolos que permitem a comunicação entre diferentes sistemas.

Com a popularização da arquitetura REST (Representational State Transfer), surgiram as chamadas APIs RESTful, uso de métodos HTTP (GET, POST, PUT, DELETE) e recursos identificados por URIs. A simplicidade e eficiência das APIs REST as tornaram amplamente adotadas no desenvolvimento de sistemas distribuídos e microsserviços.

2.5 Spring Boot

Spring Boot é um projeto do ecossistema Spring que visa simplificar a criação de aplicações Java baseadas em Spring, promovendo uma abordagem opinativa e focada na produtividade do desenvolvedor. Criado pela Pivotal Software (atualmente parte da VMware), o Spring Boot remove grande parte da configuração manual e complexidade associadas ao desenvolvimento de aplicações Spring tradicionais (JOHNSON et al., 2014).

2.6 Service Discovery

Em arquiteturas baseadas em microsserviços, é comum que os serviços sejam criados, atualizados e escalados dinamicamente.

“Tem a função de rastrear todos os microsserviços individuais na arquitetura e armazenar as informações de endereço IP/Porta em seu banco de dados. Sempre que um serviço for adicionado ou removido, ele envia uma pulsação para o serviço de descoberta, atualizando assim o banco de dados correspondente. Além disso, o servidor de descoberta/registro também agrupa as instâncias de cada serviço de forma adequada.”(WALKER, Jhony. 2023)

Está API é responsável por permitir que os serviços que estão cadastrados nela, se registrem e tirem seu registro automaticamente, de acordo com o necessário e a quantidade que for preciso, mas sempre mantendo um registro ativo, isso facilita a gestão da infraestrutura.

2.7 Gateway

O Gateway é uma API, e componente essencial em arquiteturas de microsserviços. Ele atua como um ponto único de entrada para todas as requisições externas destinadas ao sistema, sendo responsável por rotear as chamadas para os serviços apropriados.

“Esse termo vem do inglês e significa “portão de entrada”. Uma definição que deixa muito claro o seu propósito: servir como um elo entre dois pontos. Sendo assim, é possível notar que usamos o gateway o tempo todo quando nos conectamos à internet.[…]. Essas três opções funcionam como o portão principal que vai permitir que todos os dados (de ambos os lados) atravessem para alcançar seus destinos.”(SYOZI, Ricardo.2023).

O Spring Cloud Gateway é uma das ferramentas mais utilizadas no ecossistema Java para essa função. Ele oferece integração nativa com o Spring Boot e suporte a roteamento dinâmico, filtros personalizados e integração com Discovery Services como o Eureka.

2.8 Integração com serviço externo de criptomoedas

Para demonstrar a capacidade de integração da arquitetura de microsserviços, foi desenvolvida uma integração com um serviço onde traz os valores de criptomoedas.

Esse serviço é responsável por consumir a API pública do CoinMarketCap e disponibilizar, em tempo real, as cotações de diversas criptomoedas.

3 DESENVOLVIMENTO

 Está seção apresenta o desenvolvimento de uma plataforma que retorna valores de criptomoedas. Foi utilizado o framework Spring Boot 3, um service discovery, no caso o que foi implementado é o Eureka. Ela é um padrão de design que permite que o client ou API Gateways descubram as informações de rede, como endereço de IP e porta do server.

Para esse service foi escolhido. conforme a (Figura 1), 

– Nome service: eurekaserver

– Porta lógica: 8761

As opções como resgiter-with-eureka, e fetch-registry, foram desativadas, para informar que a API vai funcionar como servidor e não como cliente.

Figura 1 – Service Discovery

Fonte: AUTORIA PRÓPRIA

O serviço que vai ser o cliente desse servidor é uma segunda API chamada de mspersonas. 

Esse serviço contém toda uma estrutura de MVC (Model, View, Controller), onde toda a arquitetura fica separada por pacotes, application, domain, e infra (Figura 2).

Model (Modelo): Essa é a parte que gerencia os dados e a lógica de negócios da aplicação. Como os músicos de uma orquestra, ele trabalha nos bastidores para criar a experiência final.

View (Visualização): A View é a interface com o usuário, apresentando os dados do Modelo de forma compreensível e agradável. É a parte visível da aplicação, como o palco de um espetáculo.

Controller (Controlador): O Controlador age como o maestro, coordenando as ações do usuário e mantendo o Modelo e a View em sincronia. Ele é o cérebro por trás da operação, garantindo uma experiência coesa e agradável.”(SOUZA, Robson, 2023).(SOUZA, Robson, 2023).

Figura 2 – Pacotes Personas

Fonte: AUTORIA PRÓPRIA

Ela é responsável por cadastrar uma pessoa sendo obrigatório passar um cpf, nome, e idade, para ter um cadastro. Cada pessoa cadastrada é gerada um Long ID, que é único, sendo assim cada pessoa vai ter uma primary key (Figura 3).

Figura 3 – Entidade Personas

Fonte: AUTORIA PRÓPRIA

A (Figura 4) apresenta as seguintes informações:

– Nome da client: mspersonas

– Porta lógica: 0 (significa que a cada instância vai ser gerado uma porta randômica)

– URL vai ser cadastrada, que no caso no nosso server: http://localhost:8761/eureka.

Figura 4 – Serviço mspersonas

Fonte: AUTORIA PRÓPRIA

De acordo com a quantidade de acesso o serviço de mspersonas, é instanciado um microsserviço dentro do servidor, e cada instância uma porta lógica gerada, o valor da porta é randômica, sendo assim, como saber qual porta foi feita a instância do serviço? Para isso foi feito uma nova API que vai ser o gateway.

Com a implementação do gateway não é preciso saber a porta lógica que foi gerada,pois é responsabilidade dele identificar,  ela saberá qual a porta randômica que foi gerada,e assim conseguimos deixar uma fixa para ser feito o request, e fazer a conexão.

A configuração do serviço gateway utiliza o Spring Cloud Gateway em conjunto com o Eureka para realizar o roteamento dinâmico entre microsserviços.

Na figura 5, o componente discovery.locator está habilitado, permitindo que o gateway descubra automaticamente os serviços registrados no Eureka. A rota definida tem o identificador ms-personas, e redirecionar chamadas feitas ao caminho /personas/** para o serviço mspersonas, por meio do protocolo de balanceamento de carga (lb://).

Temos as seguintes características do mscloudgateway:

– Nome da aplicação: mscloudgateway.

– Porta lógica: 8080

– Servidor do eureka que foi definido: http://localhost:8761/eureka.

As opções fetch-registry: true e register-with-eureka: true indicam que o gateway tanto busca os serviços registrados quanto se registra como cliente no Eureka Server.

Figura 5 – Serviço mscloudgateway

Fonte: AUTORIA PRÓPRIA

 A resiliência e o balanceamento de carga inerentes à arquitetura de microsserviços, o fluxo de uma requisição externa é conduzido pelo gateway:

Entrada da Requisição (Cliente): O usuário envia uma requisição HTTP para o endereço fixo do sistema (o API Gateway), por exemplo: http://localhost:8080/personas/cadastro

Interceptação e Roteamento (Gateway): O mscloudgateway (porta 8080) recebe a chamada. Graças à configuração do discovery.locator e do lb:// (Load Balancer), ele consulta o Service Discovery para localizar o serviço de destino.

Localização do Serviço (Service Discovery): O Eureka Server (eurekaserver, porta 8761) é consultado pelo Gateway. Ele retorna a lista de todas as instâncias ativas do microsserviço 

Balanceamento de Carga: O Spring Cloud Gateway, utilizando seu balanceador de carga integrado (lb://mspersonas), escolhe uma das instâncias disponíveis do mspersonas. Isso garante que o tráfego seja distribuído de forma equitativa, oferecendo resiliência se uma instância falhar, a requisição é automaticamente direcionada para outra.

Execução do Microsserviço: A instância do mspersonas selecionada (ex: na porta randômica 54321) processa a requisição, realiza a lógica de negócio (cadastro de pessoa) e interage com o banco de dados.

Resposta: A resposta é enviada de volta pelo Gateway ao cliente final.

Este modelo de comunicação dinâmica  elimina a necessidade de o cliente saber o endereço real de cada microsserviço, permitindo que o mspersonas escale horizontalmente (mais instâncias) sem alterar a interface de acesso.

O API Gateway, por ser o único ponto de entrada externo, é fundamental para a governança e segurança do sistema. Em plataformas que lidam com dados sensíveis e alta volatilidade, como o mercado de criptomoedas, a segurança deve ser centralizada.

Embora o foco da implementação tenha sido na descoberta e roteamento de serviços, o Spring Cloud Gateway suporta nativamente a adição de filtros customizados, que podem ser usados para:

Autenticação e Autorização: Implementar a validação de tokens JWT (JSON Web Token) ou chaves API antes de rotear a requisição para o microsserviço final.

Rate Limiting (Limite de Taxa): Proteger os microsserviços de picos de tráfego e ataques de negação de serviço (DDoS) definindo um limite de requisições por segundo por usuário ou IP.

Essa capacidade de aplicar regras de segurança e qualidade de serviço no mscloudgateway demonstra como a arquitetura de microsserviços pode isolar funcionalidades críticas e proteger a aplicação como um todo.

 Foi desenvolvida uma API que faz a consulta de valores de criptomoedas (Figura 6), também configurada dentro do server, pois faz parte da arquitetura de microsserviços.

Figura 6 – Serviço mscriptovalue

Fonte: AUTORIA PRÓPRIA

Está API  responsável por consumir um serviço externo, (Figura 7) foi feita uma requisição por meio de um método GET, onde é registrada uma requisição na API do CoinMarketCap, e retornado os valores em tempo real de todas criptomoedas.

Figura 7 – Requisição feita no serviço CoinMarketCap

Fonte: AUTORIA PRÓPRIA

Conforme (Figura 8) a resposta dessa requisição, ela informa exatamente o status, id, symbol, name, e o valor da criptomoeda em price, o valor é retornado em USD.

Figura 8 – Resposta do serviço do CoinMarketCap

Fonte: AUTORIA PRÓPRIA

Todas as respostas são recebidas em JSON, que foram mapeadas em uma classe chamada CriptoResponse, onde é responsável por receber as informações.

“A comunicação entre serviços é feita por meio de APIs, garantindo baixo acoplamento e permitindo implantação contínua de novos módulos sem interromper os existentes” (NEWMAN, 2015)

 A arquitetura de microsserviços demonstra que podemos escalar o projeto de diferentes formas, podemos consumir serviços criados de diversas maneiras e lugares.

4 CONCLUSÃO

 Foi desenvolvida uma aplicação da arquitetura de microsserviços no desenvolvimento de uma plataforma voltada ao consumo de dados de criptomoedas, demonstrando como essa abordagem arquitetural pode oferecer ganhos significativos em escalabilidade, flexibilidade e resiliência de sistemas distribuídos.

Ao longo do estudo, foi possível comprovar que a divisão de responsabilidades em serviços independentes, aliados a mecanismos como Service Discovery e API Gateway, torna a aplicação mais adaptável a cenários de alta volatilidade e constante atualização, como é o caso do mercado de ativos digitais. Além disso, a integração com APIs externas, como a do CoinMarketCap, reforçou a importância da comunicação desacoplada e do uso de padrões consolidados como REST.

A implementação prática utilizando Java e Spring Boot evidenciou que ferramentas modernas do ecossistema Spring simplificam a criação e gestão de microsserviços, reduzindo a complexidade de configuração e aumentando a produtividade do desenvolvedor.

Dessa forma, conclui-se que a arquitetura de microsserviços representa uma alternativa sólida e eficiente para o desenvolvimento de plataformas que demandam alta disponibilidade, modularidade e capacidade de adaptação, sendo especialmente adequada para ambientes dinâmicos como o mercado de criptomoedas.

REFERÊNCIAS BIBLIOGRÁFICAS

FAILLACE, Andre. Mercado de Criptomoedas: Desafios e Benefícios da Falta de Regulamentação e Medidas de Proteção. Jusbrasil, 2024. Disponível em : Mercado de Criptomoedas: Desafios e Benefícios da Falta de Regulamentação e Medidas de Proteção | Jusbrasil. Acesso em: 20/05/2025

COINMARKETCAP. API Documentation. Disponível em: CoinMarketCap API Documentation. Acesso em: 06/09/2025

SILVEIRA, Edu. Microsserviço — Vantagens e desvantagens!!!. Medium, 2021. Disponível em: https://medium.com/xp-inc/microsservi%C3%A7o-vantagens-e-desvantagens-c89f227ef1f9. Acesso em: 20/05/2025

WALKER, Jhony. A Importância do Service Discovery na Arquitetura de Microsserviços. 2023.Disponível em:  https://medium.com/@jhonywalkeer/a-import%C3%A2ncia-do-service-discovery-na-arquitet ura-de-microsservi%C3%A7os-6c4130b8365a. Acesso em: 23/05/2025

SYOZI, Ricardo. O que é gateway?. Tecnoblog, 2023. Disponível em: https://tecnoblog.net/responde/o-que-e-gateway/. Acesso em: 23/05/2025

SOUZA, Robson. Desvendando o Padrão MVC em Java: Um Guia Didático com Exemplos. 2023. Disponível em :  https://medium.com/@robson.trasel/desvendando-o-padr%C3%A3o-mvc-em-java-um-guia-di d%C3%A1tico-com-exemplos-ca1ba487f5fb.  Acesso em: 25/05/2025

JOHNSON, R. et al. Spring Boot Reference Documentation. Pivotal Software, 2014.

NAKAMOTO, Satoshi. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008. Disponível em: https://bitcoin.org/bitcoin.pdf. Acesso em: 15/04/2025.


1Graduando do Curso de Engenharia de computação Wesley Luiz Emidio da Universidade de Araraquara- UNIARA. Araraquara-SP. E-mail: wlemidio@uniara.edu.br

2Orientador. Docente Curso de Engenharia de computação João Henrique Gião Borges da Universidade de Araraquara- UNIARA. Araraquara-SP. E-mail: jhgborges@uniara.edu.br

3Coorientador: Docente do curso de Engenharia de computação Fabiana Florian da Universidade de Araraquara – UNIARA. Araraquara-SP. E-mail: fflorian@uniara.edu.br