Uma vez eu comprei uma passagem aérea bem perto da data de partida.

Pagamento bem-sucedido. O dinheiro foi debitado da conta.

Mas, em vez de aparecer “Compra da passagem bem-sucedida”, a tela só mostrou uma linha curta:

“Estou processando.”

Naquela hora, minha primeira reação foi pensar que o sistema estava lento.

Tudo o que eu precisava fazer já estava feito.

Então o que mais ainda teria que esperar?

Só depois eu percebi que talvez o sistema não estivesse realmente ficando lento.

Ela só não quer que aquela transação seja concluída imediatamente.

Parece algo estranho.

Porque geralmente pensamos que uma decisão tem apenas duas possibilidades: ser permitida ou não ser permitida.

Mas, na prática, existe outra opção.

Está permitido, mas não agora.

Isso me faz pensar bastante quando leio sobre @NewtonProtocol.

O que me interessa não está em a policy responder “allow” ou “deny”.

Mas há uma pergunta menor:

Uma execução válida precisa necessariamente acontecer assim que ela é solicitada?

Acho que não é bem assim.

Há execuções em que o valor da decisão não está apenas em permitir ou não permitir.

Ela também envolve o momento em que o sistema escolhe decidir que isso realmente deve ocorrer.

Nesse caso, “esperar” deixa de ser um sinal de um sistema lento.

Ela pode ser parte da própria decisão.

Esse é o ponto em que eu vejo uma diferença bastante grande.

Normalmente, tratamos o tempo como apenas a distância entre quando você clica e quando a operação é concluída.

Mas também existem casos em que o tempo vira um parâmetro da autorização.

Não porque a execução está errada.

Mas execução correta não significa, necessariamente, que ela deva acontecer imediatamente.

Discordância.

Se uma policy sempre escolhe adiar para ser mais segura, a experiência vai rapidamente se tornar desagradável. Os usuários vão começar a sentir que toda ação está lenta, mesmo quando não há um motivo claro.

Mas se a policy padrão for que toda execução válida deve ser feita imediatamente, o sistema também perde uma forma de lidar muito importante entre as duas escolhas — “permitir” e “negar”.

O que eu quero ver em @NewtonProtocol não é apenas a capacidade de tomar uma decisão.

E é assim que a policy define quando uma execução deve acontecer imediatamente e, quando esperar mais um tempo é uma decisão mais apropriada.

Para mim, uma camada de autorização bem feita não decide apenas o que pode acontecer.

Ela também entende que, às vezes, o momento certo é parte dessa própria decisão.

#Newt $SPCXB $LAB $NEWT