Weaver is a Layer-7 Load Balancer with Dynamic Sharding Strategies. It is a modern HTTP reverse proxy with advanced features.


  • Sharding request based on headers/path/body fields
  • Emits Metrics on requests per route per backend
  • Dynamic configuring of different routes (No restarts!)
  • Is Fast
  • Supports multiple algorithms for sharding requests (consistent hashing, modulo, s2 etc)
  • Packaged as a single self contained binary
  • Logs on failures (Observability)


Build from source

  • Clone the repo:
git clone [email protected]:gojektech/weaver.git
  • Build to create weaver binary
make build

Binaries for various architectures

Download the binary for a release from: here



Weaver uses etcd as a control plane to match the incoming requests against a particular route config and shard the traffic to different backends based on some sharding strategy.

Weaver can be configured for different routes matching different paths with various sharding strategies through a simple route config named ACL.

The various sharding strategies supported by weaver are:

  • Consistent hashing (hashring)
  • Simple lookup based
  • Modulo
  • Prefix lookup
  • S2 based


We have examples defined to deploy it to kubernetes and using acls.


Please note

As the famous saying goes, All Load balancers are proxies, but not every proxy is a load balancer, weaver currently does not support load balancing.