Librarie for building distributed services
The partition package supports self-sharding: where a cluster of servers accept any request but then hash the request and route it to one of the servers in the request based on the hash.
This combines the "gateway which shards the request to servers" with the "servers which serve a shard" into one single cluster.
Note that this sharding is not perfect but it is quite useful when sharding improves performance (by caching requests) or allows serial execution (to avoid redoing some work). This is not useful when sharding is needed for correctness (that requires some form of distributed locking).