DEV Community

Roberto de Vargas Neto
Roberto de Vargas Neto

Posted on • Originally published at dev.to

Construindo um Ecossistema de Microserviços: Simulador de Corretora de Valores (My Broker B3)

Olá, pessoal!

Estou iniciando uma série de artigos para documentar o desenvolvimento do My Broker B3. Este é um projeto pessoal onde estou aplicando conceitos avançados de engenharia de software, sistemas distribuídos e mensageria para simular o funcionamento real de uma corretora de valores.

O objetivo principal é criar um ecossistema que lide com desafios de consistência de dados, baixa latência e comunicação assíncrona, integrando um motor de negociação (Matching Engine) simplificado.


🏗️ A Arquitetura do Sistema

O projeto foi desenhado seguindo a filosofia de microserviços, utilizando uma stack híbrida para aproveitar o melhor de cada ecossistema:

  • Core Backend (Java/Spring Boot 3): Responsável pelas APIs de ordens (broker-order-api), carteira (broker-wallet-api) e gestão de ativos (broker-asset-api).
  • Market Data (Python): Um integrador (broker-market-data-api) que gerencia a ingestão de dados de mercado via agendamento.
  • Matching Engine (Java): Um simulador da B3 (b3-matching-engine-api) que processa a execução das ordens enviadas pela corretora.

⚙️ Fluxo de Dados e Tecnologias

Para garantir resiliência e escalabilidade, adotei uma estratégia de comunicação híbrida:

  1. Síncrona (REST): Utilizada para validações críticas em tempo real, como verificar o saldo da carteira antes de permitir o envio de uma ordem.
  2. Assíncrona (Event-Driven):
    • Apache Kafka: Atua como barramento de eventos interno para distribuição de cotações e eventos de ativos.
    • RabbitMQ: Gerencia a comunicação entre a Corretora e o Simulador da B3 através de filas dedicadas.

Persistência e Cache

Cada serviço utiliza a estratégia de dados que melhor se adapta à sua função:

Tecnologia Caso de Uso
MySQL / PostgreSQL Dados transacionais, ordens e histórico de carteira.
MongoDB Histórico de cotações (Time-series data) na API de Market Data.
Redis Cache "quente" de preços de mercado para consultas de altíssima velocidade.

Desenho técnico

🚀 O que vem por aí?

Este post é apenas o "pontapé inicial". Nos próximos artigos, pretendo detalhar:

  1. Infraestrutura: Como subir todos esses recursos na AWS (Free Tier).
  2. Mensageria: Deep dive na configuração do Kafka e RabbitMQ.
  3. Desafios Técnicos: Como lidar com a consistência eventual e o processamento do motor de matching.

Fiquem à vontade para deixar feedbacks ou dúvidas nos comentários!


Minhas Redes:

java #springboot #microservices #softwarearchitecture #backend #python

Top comments (0)