Revision naming best practices?

What are people using for the revision values on their events? Originally we started off with simple integers that we incremented every time we made a change to an event that required upcasting, e.g., @Revision("3"). But now I'm thinking of switching to a date-based setup like @Revision("20170713.0") so that upcasters can, say, do

if (serializedType.getRevision().compareTo("20170713") < 0 && [other filter criteria])

rather than needing to potentially keep track of which event classes are on which revision number at the time we make a particular change that spans multiple event types.

What other conventions have people found most useful?


Hi Steven,

in some projects, we have used the MavenVersionRevisionResolver quite successfully. It automatically assigns the current Maven version as revision to all messages.
Being able to compare revisions numerically (or semi-numerically) is definitely an advantage. Dates might be slightly easier than version numbers, but don’t work if you expect to run concurrent versions of software (e.g. blue/green).

Hope this helps.