Strategy for creting code versions

Note: I am NOT talking about VSS, PVCS, etc.

Was curious if anyone had any input on devising a strategy for versioning the code. Below is a fictious example. I am not positive how the elements will interact exactly, just curious about creating versions of the code.

Documents are created based on the current business rules. A team would create documents that would be version 1.0 and the date it should be processed, then dropped in a queue/drop box. Down the road, documents are created with version 2.0 and the date they should be processed, then dropped in a queue/drop box… Version 1.0 and 2.0 are similar, but have different business rules and will handle the documents slightly differently. In the future, the versions could theoritically be infinite.

A service would run to get all the documents with the current date, then based on the version that is requested, process the document with that version of the code. We could theoritically have released 25 versions of the code when there is still a version 1.0 that needs to be processed.

Since creating a seperate set of packages for each version would eventually load 100s of packages on the server, this isn’t an ideal solution.

Anyone have any thoughts on some potential strategies to do this?

Brain,

In you are maintaining code in the same package for all versions,then create different Main flow Services that uses different Document versions(1.0 or 2.0 etc…)as ServiceInputs and so once you have retrieved the documents from the Queue/dropbox versions then use diff trigger conditions or in a seperate flow branch on the version numbers and process it to appropriate Mainflows.

Just my thoughts,