Pular para o conteúdo

Design clássico · Pleno

Leilão online (eBay)

Projeto de entrevista clássico. Pontos centrais: reservas e concorrência e WebSocket e presença.

14 min de leitura · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Projeto de entrevista clássico. Pontos centrais: reservas e concorrência e WebSocket e presença. Um serviço de leilão online permite que usuários anunciem itens à venda e que outros usuários compitam para comprá-los. A competição acontece por lances: cada novo lance precisa superar o lance mais alto atual, até o leilão terminar, e quem tiver o maior lance leva o item.

01 · CONTEXTO

Competir por um item até o leilão acabar

Um serviço de leilão online permite que usuários anunciem itens à venda e que outros usuários compitam para comprá-los. A competição acontece por lances: cada novo lance precisa superar o lance mais alto atual, até o leilão terminar, e quem tiver o maior lance leva o item.

Este artigo usa apenas a parte pública da página de referência; o que ela mantém fechado não é afirmado aqui.

02 · REQUISITOS

Três ações e um limite de escopo

Os requisitos centrais são três. Publicar um item com preço inicial e data de término; dar lance num item, sendo o lance aceito apenas se for maior que o lance mais alto atual; e ver um leilão, incluindo o lance mais alto atual.

Ficam de fora, de forma explícita, a busca de itens, o filtro por categoria, a ordenação por preço e a consulta ao histórico de leilão de um item.

03 · FLUXO BÁSICO

O caminho de publicar, dar lance e consultar

O esboço abaixo é uma leitura própria dos três requisitos, não um desenho reproduzido da fonte: um serviço de leilões atrás de um gateway, com um banco que guarda itens e lances. Ele ainda não resolve concorrência nem tempo real; serve de base para as perguntas da próxima seção.

  1. Quem vende envia o item com preço inicial e data de término; o pedido entra pelo gateway.

    Diagrama da arquitetura: Leilão: fluxo básico
    CLNavegador ou apppublica o item
    NWGateway de API
    CPServiço de leilões
    DBBanco de leilões e lances
  2. O serviço de leilões grava o item no banco, que passa a representar um leilão aberto.

    Diagrama da arquitetura: Leilão: fluxo básico
    CLNavegador ou app
    NWGateway de API
    CPServiço de leilões
    DBBanco de leilões e lancesitem em leilão
  3. Um comprador envia um lance para o item.

    Diagrama da arquitetura: Leilão: fluxo básico
    CLNavegador ou appdá o lance
    NWGateway de API
    CPServiço de leilões
    DBBanco de leilões e lances
  4. O serviço só aceita o lance se ele for maior que o lance mais alto atual do item.

    Diagrama da arquitetura: Leilão: fluxo básico
    CLNavegador ou app
    NWGateway de API
    CPServiço de leilõescompara com o atual
    DBBanco de leilões e lances
  5. Quem consulta o leilão recebe o item com o lance mais alto atual.

    Diagrama da arquitetura: Leilão: fluxo básico
    CLNavegador ou app
    NWGateway de API
    CPServiço de leilões
    DBBanco de leilões e lanceslance mais alto

04 · APROFUNDAMENTOS

Onde o problema realmente aperta

A página lista quatro perguntas de aprofundamento: como garantir consistência forte para os lances, como tornar o sistema tolerante a falhas e durável, como exibir o lance mais alto atual em tempo real e como escalar para dez milhões de leilões simultâneos.

AprofundamentoPergunta da página
Consistência dos lancesComo garantir consistência forte para os lances?
Falhas e durabilidadeComo tornar o sistema tolerante a falhas e durável?
Tempo realComo exibir o lance mais alto atual em tempo real?
EscalaComo escalar para dez milhões de leilões simultâneos?

05 · PADRÕES

Disputa e atualização ao vivo

A página classifica o problema com dois padrões: disputa por um mesmo recurso (Dealing with Contention) e atualizações em tempo real (Real-time Updates).

Para estudar a primeira, vale revisar consistência e suas garantias; para a segunda, os protocolos de comunicação, e para leituras frequentes do valor atual, os fundamentos de cache.

O segundo esboço mostra apenas uma forma possível de levar um lance aceito a quem acompanha o leilão, usando uma fila de eventos e um serviço de difusão. É uma ilustração do raciocínio do curso, não a solução da fonte.

  1. Quem dá o lance o envia ao serviço de lances.

    Diagrama da arquitetura: Leilão: acompanhamento ao vivo
    CLQuem dá o lanceenvia o lance
    CPServiço de lances
    DBBanco de lances
    QFila de eventos de lance
    CPServiço de difusão
    CLQuem acompanha
  2. O serviço valida o lance contra o lance mais alto atual e grava o resultado no banco.

    Diagrama da arquitetura: Leilão: acompanhamento ao vivo
    CLQuem dá o lance
    CPServiço de lances
    DBBanco de lancesfonte de verdade
    QFila de eventos de lance
    CPServiço de difusão
    CLQuem acompanha
  3. Para cada lance aceito, o serviço publica um evento na fila.

    Diagrama da arquitetura: Leilão: acompanhamento ao vivo
    CLQuem dá o lance
    CPServiço de lances
    DBBanco de lances
    QFila de eventos de lanceevento de lance
    CPServiço de difusão
    CLQuem acompanha
  4. O serviço de difusão consome o evento sem prender a gravação do lance.

    Diagrama da arquitetura: Leilão: acompanhamento ao vivo
    CLQuem dá o lance
    CPServiço de lances
    DBBanco de lances
    QFila de eventos de lance
    CPServiço de difusãoconsome
    CLQuem acompanha
  5. Quem acompanha o leilão recebe o novo valor sem recarregar a página.

    Diagrama da arquitetura: Leilão: acompanhamento ao vivo
    CLQuem dá o lance
    CPServiço de lances
    DBBanco de lances
    QFila de eventos de lance
    CPServiço de difusão
    CLQuem acompanhavalor atualizado

Perguntas frequentes

O que é Leilão online (eBay)?

Projeto de entrevista clássico. Pontos centrais: reservas e concorrência e WebSocket e presença.

O que o design de Leilão online (eBay) cobre?

Ele está organizado nestas seções: Competir por um item até o leilão acabar, Três ações e um limite de escopo, O caminho de publicar, dar lance e consultar, Onde o problema realmente aperta e Disputa e atualização ao vivo.

Quanto tempo leva Leilão online (eBay) e qual é o nível?

Leva cerca de 14 minutos para ler e tem nível Pleno.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.