¿Por qué Dropbox decidió usar rutas de archivo en lugar de UUID como el identificador único para los archivos en su API REST?

Nota: En un momento fui el líder de ingeniería en la API de Dropbox, pero ya no trabajo allí y no represento a la empresa de ninguna manera

La respuesta corta es que la API hace referencia a los archivos por ruta porque Dropbox bajo el capó rastrea los archivos por ruta, y eso es lo más natural para exponer a través de la API. Si la API hace referencia a cosas por id, tendría que haber muchos servidores de bases de datos adicionales ejecutándose solo para realizar un seguimiento de qué UUID se refiere a qué ruta.

Ahora, la razón por la que Dropbox rastrea los archivos por ruta es porque desde el principio fue diseñado para ser lo más robusto posible, de modo que no importa lo que haga el usuario, la computadora o Internet, simplemente funciona. Debería poder salir de la aplicación Dropbox, mover todo en su carpeta de Dropbox, iniciar la aplicación nuevamente y hacer que todo se sincronice de manera correcta y rápida. También tiene que hacer esto en una increíble cantidad de computadoras diferentes que ejecutan diferentes versiones de diferentes sistemas operativos además de diferentes sistemas de archivos. Una parte clave para que esto suceda es asumir lo menos posible sobre el sistema subyacente y ser extremadamente paranoico. Algunos sistemas de archivos exponen identificadores de archivos, pero no todos, y los que lo hacen pueden tener una semántica ligeramente diferente si funcionan correctamente, lo que no se garantiza si está utilizando un programa que no utiliza el sistema correcto llamadas. Dado que las rutas son básicamente lo único en lo que puede confiar el 100% del tiempo, tiene sentido construir el sistema alrededor de ellas si desea maximizar la confiabilidad. Y una vez que haya realizado todo el esfuerzo de construir un sistema de este tipo, desea agregar la menor complejidad posible innecesaria, y así aprender cuáles son las reglas para escapar caracteres no válidos en las URL para que pueda hacer referencia a los archivos por ruta en el API

Vale la pena señalar que las rutas tienen otras desventajas en comparación con los identificadores: las rutas en Dropbox no distinguen entre mayúsculas y minúsculas, lo que significa que hay muchos lugares diferentes donde eso debe tenerse en cuenta, y es difícil saber cuándo se ha movido o renombrado un archivo , ya que tiene un camino diferente. Como muchas otras cosas en ingeniería: es una compensación.