DEV Community

Roberto de Vargas Neto
Roberto de Vargas Neto

Posted on • Edited on

Guia da Série: Construindo um Simulador de Corretora com Microserviços

Seja bem-vindo ao índice oficial da série My Broker B3. Aqui você encontrará todos os artigos publicados sobre o desenvolvimento deste ecossistema financeiro, organizados na ordem ideal de leitura.

Este projeto é um laboratório prático onde aplico engenharia de software, sistemas distribuídos e mensageria para simular a integração entre uma Corretora e a B3.


🚀 Artigos da Série

  1. Visão Geral do Projeto

    • Apresentação do projeto My Broker B3: uma POC de ecossistema de microserviços que simula uma corretora integrada à B3. Visão geral dos 9 serviços, estratégia de comunicação (REST, Kafka, RabbitMQ), decisões de persistência (MySQL, PostgreSQL, MongoDB, Redis) e o fluxo completo de uma ordem ponta a ponta.
  2. Infraestrutura com Docker Compose

    • Como subir 12 containers com um único comando usando Docker Compose: isolamento de dados por domínio com múltiplos bancos MySQL, PostgreSQL, dois Redis independentes, MongoDB, Kafka no modo KRaft, RabbitMQ e observabilidade com Prometheus + Grafana desde o dia 1.
  3. Market Data: O Integrador Python, MongoDB e Kafka

    • O ingestor de dados reais da B3: serviço Python que busca cotações de 50 ativos na API Brapi a cada 30 minutos, persiste o histórico no MongoDB e publica eventos no Kafka. Decisões sobre scheduling, rate limiting, producer Kafka por execução e proteção de token.
  4. Dicas de Ferramentas: MongoDB Compass e Offset Explorer

    • As ferramentas indispensáveis para visualizar dados em um pipeline assíncrono: MongoDB Compass para inspecionar collections, Offset Explorer para ver mensagens no Kafka em tempo real e RabbitMQ Management UI para monitorar filas e exchanges.
  5. Do Stream para o Banco: Processando Market Data com Spring Boot, Redis e Flyway

    • Do stream para o banco: serviço Spring Boot que consome cotações do Kafka, faz upsert no MySQL com Flyway e mantém o cache Redis com TTL. Decisões sobre timestamp real do mercado, filtro de status nas queries JPA e por que relançar exceções no consumer Kafka.
  6. Sincronizando o Mercado Real: Consumindo a Brapi e Alimentando o Redis com Spring Boot

    • Sincronizando preços reais da Brapi para o Redis com Spring Boot: scheduler com guard de horário de pregão usando ZonedDateTime explícito, deserializer customizado para epoch Unix, TTL de 5 minutos e endpoint REST para observabilidade dos preços em cache.
  7. O Coração da B3: Construindo o Matching Engine com RabbitMQ, Redis e Spring Boot

    • O motor de execução que simula a B3: consome ordens via RabbitMQ, consulta o preço atual no Redis para decidir entre FILLED e REJECTED, persiste o resultado no PostgreSQL com garantia transacional e devolve o feedback para a corretora — incluindo Dead Letter Queue para mensagens com falha.
  8. Custódia Financeira: Gerenciando Saldo e Carteira com Consistência Eventual

    • Custódia financeira com consistência eventual: serviço que reage a eventos Kafka de ciclo de vida das ordens para bloquear saldo (PENDING), liquidar (FILLED) ou estornar (REJECTED). Cálculo de preço médio ponderado, idempotência com constraint de banco e o conceito de saldo bloqueado vs disponível.
  9. O Maestro do Ecossistema: Orquestrando Ordens de Mercado com Kafka, RabbitMQ e Spring Boot

    • O maestro do ecossistema: orquestra o ciclo de vida completo de uma ordem validando saldo via Feign, persistindo como PENDING, enviando para a B3 via RabbitMQ e publicando dois eventos Kafka — um na criação e outro no status final. Por que exchange em vez de fila direta e a decisão de executedPrice nullable.

... mais artigos serão adicionados conforme o desenvolvimento avança!


Minhas Redes:

Top comments (0)