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
Binaries for various architectures
Download the binary for a release from: here
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
- Prefix lookup
- S2 based
We have examples defined to deploy it to kubernetes and using acls.
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.
Subscribe to Golang Example
Get the latest posts delivered right to your inbox