← Voltar aos slides
Demo interativa · roda 100% no navegador, sem backend

O perigo oculto do Mono.zip()

Simulação do fan-out reativo que monta a tela de "Parabéns pela compra": 7 fontes de dados são buscadas em paralelo com Mono.zip(). Uma delas — o card "Meus Direitos" — só existe para categorias regulamentadas. Rode os três cenários abaixo e veja o efeito cascata na prática.

1. Fan-out paralelo — Mono.zip() com 7 fontes

Cada caixa representa uma fonte simulada; algumas podem ficar ocultas ou responder vazias.
O caso observado é o card "Meus Direitos" (em azul).

🛍️
Recomendações
Aguardando
🚚 Acompanhamento
Aguardando
⭐ Pontos Fidelidade
Aguardando
🏷️
Upsell / Ofertas
Aguardando
💬 Avaliação
Aguardando
🔗 Compartilhar
Aguardando
📄 Meus Direitos
Aguardando
→
Mono.zip()
aguardando…

2. JSON emitido pelo Middleend (SDUI)

// O JSON final enviado para a tela aparecerá aqui após a execução do zip().

3. Tela renderizada (Smartphone)

Aguardando execução…

4. Onde a diferença acontece no código

⚠️ Com o Bug (Mono.empty)

public Mono<RightsCard> getCard(String id) {
  return client.fetch(id)
    .onErrorResume(ex -> Mono.empty());
}

✅ Com o Fix (Mono.just com objeto)

public Mono<RightsCard> getCard(String id) {
  return client.fetch(id)
    .onErrorResume(ex ->
       Mono.just(RightsCard.empty()));
}