Neo4j / Estratégia para manter o histórico de alterações nos nós

Vamos assumir um gráfico que lida com carros.
CadaCar pode evoluir com o tempo e preciso acompanhar essas alterações.
(para poder rastrear alguma inconsistência da evolução etc ...)

Eu pensei em implementar umcopiar na gravação mecanismo (comoLinkedIn parece fazer), o que significa criar um novo e completoCar nó cada vez que um dosCaralterações de propriedades.

Eu terminaria com um gráfico como este:

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

Estou especificamente interessado em recuperar a versão mais atual, para que soe bem.

No entanto, como lidar com o problema inicialCar UUID?

MinhasCarO UUID (que é uma propriedade indexada para facilitar as consultas) é gerado automaticamente através de uma biblioteca (Apache).
Imagino que, se eu mantiver o mesmo UUID inicial para cadaCar versão, isso pode levar a alguns conflitos: "Recupere oFerrari cujo UUID é 123"=> retornando mais de um resultado .. 3 resultados se 3 versões.

É seguro e eficiente gerar uma nova marca UUID para cada versão?

Portanto, estou ciente de que, neste caso, a única maneira de recuperar uma versão específica seria atravessar a parte do gráfico em questão até a correta, e sem contar com uma simples consulta no UUID inicial; isso ainda parece muito eficiente e fácil com uma simples consulta Cypher.

Quero manter um UUID gerado, pois não é recomendável ter um URL REST "adivinhado" em potencial (usando o UUID do recurso).
Na verdade, eu poderia ter um UUID sendo a combinação entre oCar modelo e sua versão, mas parece não ser "seguro" o suficiente com uma visibilidade nos meus URLs. Qualquer pessoa mal-intencionada pode facilmente recuperar uma versão mais antiga apenas alterando o URL.

questionAnswers(1)

yourAnswerToTheQuestion