Guidelines:
Should include
- What does the versioning protocol achieve? E.g., allows a router to lazily discover that its routing cache is stale
- What types of events cause a routing cache to be stale?
- What are special version conventions we use? 0,0|0 for unsharded, 0,0|epoch for no chunk, 0,0|MAX for ignored
Code references
- Where shardVersions are stored in a router's cache
- An example of how shardVersion is attached in an egress message
- Where shardVersions are parsed in the ServiceEntryPoint and put on the OperationShardingState
- Where shardVersions are stored in a shard's filtering cache
- The checkShardVersion method on a shard