Neo4j / Estrategia para mantener el historial de cambios de nodos

Supongamos un gráfico que trata de autos.
CadaCar puede evolucionar con el tiempo, y necesito hacer un seguimiento de esos cambios.
(para poder rastrear alguna inconsistencia de la evolución, etc.)

Pensé en implementar unCopiar en escrito mecanismo (comoLinkedIn parece hacerlo), lo que significa crear una nueva completaCar nodo cada vez que uno de losCarLas propiedades de los cambios.

Terminaría con un gráfico como este:

(Ferrari)-[:CURRENT]->(V3)-[:PREVIOUS]->(V2)-[:PREVIOUS]->(V1)

Estoy específicamente interesado en recuperar la versión más actual, por lo que sonaría bien.

Sin embargo, cómo lidiar con la inicialCar UUID?

MiCarEl UUID (que es una propiedad indexada para facilitar las consultas) se genera automáticamente a través de una biblioteca (Apache).
Me imagino que si mantengo el mismo UUID inicial para cadaCar versión, esto podría conducir a algún conflicto: "Recuperar elFerrari cuyo UUID es 123"=> devolviendo más de un resultado .. 3 resultados si 3 versiones.

¿Es seguro y eficiente generar un nuevo UUID de marca para cada versión?

Por lo tanto, soy consciente de que, en este caso, la única forma de recuperar una versión en particular sería atravesar la parte correspondiente del gráfico hasta la correcta, y no contar con una consulta simple en el UUID inicial; eso todavía parece muy eficiente y fácil con una simple consulta Cypher.

Quiero mantener un UUID generado ya que no es recomendable tener una URL REST "adivinable" potencial (usando el UUID del recurso).
De hecho, podría tener un UUID siendo la combinación entre elCar modelo y su versión, pero no parece suficiente "seguro" con una visibilidad en mi URLS. Cualquier persona malintencionada podría fácilmente recuperar una versión anterior simplemente cambiando la URL.