Una vez compré un billete de avión para el mismo día de salida.
Pago realizado con éxito. El dinero ya se ha descontado de la cuenta.
Pero en lugar de que apareciera “Billete reservado con éxito”, la pantalla solo mostraba una línea corta:
“Estoy procesando.”
En ese momento, mi primera reacción fue pensar que el sistema iba lento.
Todo lo que necesitaba hacer, ya lo hice.
Entonces, ¿qué más hay que esperar?
Más tarde me di cuenta de que quizá el sistema no esté realmente retrasado.
Solo no quiere terminar esa transacción todavía.
Suena extraño.
Porque normalmente pensamos que una decisión solo tiene dos posibilidades: se permite o no se permite.
Pero en realidad hay otra opción.
Se permite, pero no ahora.
Esto me hace pensar bastante al leer sobre @NewtonProtocol.
Lo interesante que veo no está en si la policy responde “allow” o “deny”.
Pero hay una pregunta más pequeña:
¿Una ejecución válida necesariamente debe ocurrir justo cuando se solicita?
No creo que necesariamente sea así.
Hay ejecuciones en las que el valor de la decisión no está solo en si se permite o no.
También está en el momento en que el sistema elige decidir que eso ocurra realmente.
En ese caso, “esperar” ya no es una señal de un sistema lento.
Puede ser parte de la propia decisión.
Ahí es donde veo una diferencia bastante marcada.
Normalmente, vemos el tiempo solo como la distancia entre cuando se pulsa un botón y cuando se completa.
Pero también hay casos en los que el tiempo se convierte en un parámetro de la autorización.
No es porque la ejecución sea incorrecta.
Pero que la ejecución sea correcta no significa que deba ocurrir de inmediato.
Refutación.
Si una policy siempre elige retrasar para estar más segura, la experiencia se volverá rápidamente molesta. El usuario empezará a sentir que todas las acciones van lentas, incluso cuando no haya una razón clara.
Pero si la policy predeterminada establece que toda ejecución válida debe realizarse de inmediato, el sistema también pierde un manejo muy importante entre las dos opciones “permitir” y “denegar”.
Lo que quiero ver desde @NewtonProtocol no es solo la capacidad de tomar una decisión.
Y es la forma en que la policy determina cuándo una ejecución debe ocurrir inmediatamente y cuándo esperar otro periodo de tiempo es una decisión más apropiada.
Para mí, una buena capa de autorización no solo decide qué se puede permitir que ocurra.
También entiende que a veces, el momento exacto es parte de esa decisión.
