I'm going to be setting up a sharded + replicated mongo cluster, with application software servers co-located with mongod instances-- so that odds are a request is being processed on the same hardware server where the necessary data lives.
But it's a bit of a drag how mongo secondary replica servers are almost dead weight compute-resources, since they can only handle reads... and must forward all writes to their primary. Therefore, there's almost no point to co-locate application servers with secondary replicas... only primaries.
Therefore I've considered a setup where each server is a shard, and also a replica for a neighboring shard. That way, no server is dead weight.
Are there any concerns with this architecture, from anyone who has tried it?