Olá, pessoal!
Estou iniciando uma série de artigos para documentar o desenvolvimento do Meu Corretor 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íncronaintegrando 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:
-
Back-end principal (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). -
Dados de mercado (Python): Um integrador (
broker-market-data-api) que gerencia a ingestão de dados de mercado via agendamento. -
Mecanismo de correspondência (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íncrono (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 (orientada a eventos):
- Apache Kafka: Atua como barramento de eventos interno para distribuição de cotações e eventos de ativos.
- CoelhoMQ: Gerencia a comunicação entre a Corretora e o Simulador da B3 através de filas dedicadas.
Persistência e Cache
Cada serviço usa 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 (nível gratuito).
- 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 a vontade para deixar feedbacks ou dúvidas nos comentários! 🚀
Minhas Redes:
Deseja saber mais sobre Programação e Desenvolvimento Clique Aqui!
software,codificação,desenvolvimento,engenharia,inclusiva,comunidade
