Howdy - We are using composite IDs of the form <user>!<event>. This ensures that all events for a user are stored in the same shard.
I'm assuming from the description of how composite ID routing works, that if you split a shard the "split point" of the hash range for that shard is chosen to maintain the invariant that all documents that share a routing prefix (before the "!") will still map to the same (new) shard. Is that accurate? A naive shard-split implementation (e.g. that chose the hash range split point arbitrarily) could end up with "child" shards that split a routing prefix. Thanks, Ian