--- name: Sempre usar TODAS as VMs disponíveis description: Qualquer solver/scraper que rodar na VM deve estar em adv-22 E adv-23 (e qualquer futura adv-N) com round-robin no scraper do servidor type: feedback originSessionId: 2599d295-29b1-43d3-93f7-6b44de3bf1d6 --- **SEMPRE usar todas as VMs que temos no SkyMilhas.** Hoje: adv-22 (100.91.20.22) + adv-23 (100.123.139.93). No futuro adv-24, adv-25 etc. **Why:** Jesiel paga pelas VMs e quer paralelismo + redundância. Rodar solver em apenas uma VM joga fora capacidade e cria SPOF. Padrão validado em smiles-solver, tap-solver, gol-solver, aa-solver, delta-solver, azul-tudoazul-solver — todos round-robin nas 2 VMs. **How to apply:** - Ao criar novo solver: deploy em adv-22 E adv-23 simultaneamente - Scraper do servidor: variável `_VM_SOLVER_HOSTS=100.91.20.22,100.123.139.93` + função `pickVmHost()` round-robin - Se uma VM estiver inacessível (ex: Tailscale SSH gate adv-23 11/05): deixar instruções para replicar manualmente, mas NUNCA seguir com solo em produção - RT paralelo: dividir IDA/VOLTA entre as VMs simultâneas via `Promise.all` (memória `project_rt_paralelo_2vms_2026_05_05.md`) - Health endpoint do scraper deve retornar status de cada VM - Fallback automático: se uma VM falhar, próxima request vai pra outra