Skip to content

Instantly share code, notes, and snippets.

@alexrios
Created November 1, 2025 12:54
Show Gist options
  • Save alexrios/9ca229286185f5432b3cdb900255b745 to your computer and use it in GitHub Desktop.
Save alexrios/9ca229286185f5432b3cdb900255b745 to your computer and use it in GitHub Desktop.

Kata de Arquitetura: Going Going Gone!

Seu Desafio

Projete a arquitetura para uma plataforma de leilão em tempo real.


Contexto de Negócio

Uma empresa de leilões deseja levar seus leilões online em escala nacional. Os clientes escolhem o leilão para participar, aguardam até que o leilão comece e então fazem lances como se estivessem presentes na sala com o leiloeiro.


Requisitos

Funcionalidade Principal

  • Descoberta de Leilões: Os leilões devem ser categorizados e "descobríveis"
  • Lances em Tempo Real: Os leilões devem ser em tempo real
  • Modelo Híbrido: Os leilões devem suportar participantes tanto presenciais quanto online
  • Transmissão de Vídeo: Stream de vídeo ao vivo da ação do leilão
  • Troca de Dinheiro: Processamento seguro de pagamentos
  • Sistema de Reputação: Rastrear participantes para reputação/confiança

Requisitos de Escala

  • Centenas de participantes por leilão
  • Potencialmente até milhares de participantes
  • O máximo de leilões simultâneos possível

Questões a Considerar

  • O que acontece se um lance chega atrasado devido à latência de rede?
  • Como você garante a justiça entre participantes distribuídos?
  • Como você sincroniza o vídeo com os lances em tempo real?
  • Qual é o seu modelo de consistência durante leilões de alto tráfego?
  • Como você previne "bid sniping" (lances de última hora)?
  • O que acontece quando a conectividade é perdida durante lances ativos?
  • Como você lida com falhas de pagamento?

Tempo de Discussão: 75 minutos

Tempo de Apresentação: 6 minutos

Perguntas e Respostas: 5 minutos

Lembre-se: Foque em decisões de nível de arquitetura, não em detalhes de implementação. Esteja pronto para explicar seus trade-offs!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment