* All sharding logic and management lives in a stand-alone proxy process, so that it's transparent to the application.
== What the App Sees ==
=== Other Service Redundancy ===
We don't want a single-point-of-failure, so we'll have to have multiple instances of the webapp talking to multiple instances of the proxy. These are connected via loadbalancing, virtual IPs, and whatever Ops wizardry is required to make single-machine failures in each tier be a non-event:
: MySQL Instances :
:.................:
Note that this shard-state metadata will be very small and be updated very infrequently, which should make it very friendly to a local zookeeper installation.