Version length: Is 53 bits enough?

Maybe I’m somewhat of a pessimist, but I actually wouldn’t feel too comfortable with only 285 years of headroom, especially if it’s not really 285 years because the version can advance fast due to recoveries, due to DR switchovers, or even due to clock drift. (In some theoretical future where we could commit more than 1 million transaction batches a second, we would need to advance at more than 1 million a second, though maybe that’s far off.)

Having an 8 byte version also means that now your version is a strict prefix of your 10 byte versionstamp (or 12 byte versionstamp), which may be a property you want, but maybe it doesn’t matter.

But it’s probably not really that important one way or the other. I suppose that if you ran into version value overflows, you could fix the return type (at a certain API version or higher) to something else.