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:
- 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.
- 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:
- Infraestrutura: Como subir todos esses recursos na AWS (Free Tier).
- Mensageria: Deep dive na configuração do Kafka e RabbitMQ.
- 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:
Top comments (0)