```plantuml
@startuml
autonumber
title Fluxo de Stickyness para Web

participant Developer
participant SuperApp
participant AmeAppTools
participant Emulator
participant ALB
participant AmeCliReloader1
participant AmeCliReloader2
participant AmeCliReloader3

Developer->AmeAppTools: start()
AmeAppTools->AmeAppTools: cookie = loadCookie('~/.ame.cookie.json')
AmeAppTools->AmeAppTools: bootstrapUrl = bootstrapUrl.append(cookie)
AmeAppTools->ALB: uploadSourceCode(cookie, 'foo.js')
ALB->ALB: chooseWorkspaceInstance(cookie)
note over ALB
    Se o Cookie veio vazio o ALB seleciona o AmeCliReloader1
    Se o Cookie veio preenchido o ALB seleciona a instancia definida no cookie
end note
ALB->AmeCliReloader1: uploadSourceCode()
AmeCliReloader1-->ALB:
ALB->ALB: Se o cookie expirou um novo será gerado
ALB-->AmeAppTools: cookie
AmeAppTools->AmeAppTools: save(cookie, '~/.ame.cookie.json')
AmeAppTools->Emulator: openEmulator(bootstrapUrl)
Emulator->Emulator: abre url no iframe
Emulator->AmeAppTools: request pelo próprio localhost
AmeAppTools->AmeAppTools: troca o host
AmeAppTools->ALB: getMiniApp(cookie, bootstrapUrl)
ALB->AmeCliReloader1: getMiniApp(bootstrapUrl)
AmeCliReloader1-->ALB: html do miniapp  
ALB-->AmeAppTools: html do miniapp + cookie
AmeAppTools-->Emulator: html do miniapp
Emulator->Emulator: Exibe miniapp
@enduml
```