Application/LoadBalancer
Schema
| Property |
Type |
Description |
listen_address |
string |
Address the load balancer listens on |
listen_port |
integer |
Port the load balancer listens on |
algorithm |
string |
Load balancing algorithm (roundrobin, leastconn, source, uri, random) |
health_check.enabled |
boolean |
Whether health checks are enabled |
health_check.interval |
string |
Interval between health checks (e.g., 10s) |
health_check.timeout |
string |
Timeout for a health check response (e.g., 5s) |
health_check.path |
string |
HTTP path for health check requests (e.g., /health) |
backends |
array of objects |
Backend servers (name, address, port, weight) |
These properties are common across all load balancer implementations. Sub-types add application-specific settings.
Sub-types
| Sub-type |
Application |
Use Case |
| LoadBalancer/HAProxy |
HAProxy — high-performance TCP/HTTP load balancer |
Traditional L4/L7 load balancing |
| LoadBalancer/Traefik |
Traefik — cloud-native reverse proxy |
Auto-discovery, Let's Encrypt, Docker/K8s native |
| LoadBalancer/Envoy |
Envoy — L7 proxy and communication bus |
Service mesh, gRPC, advanced observability |
Example
_type: amadla.org/entity/application/load-balancer@v1.0.0
_body:
listen_address: 0.0.0.0
listen_port: 80
algorithm: roundrobin
health_check:
enabled: true
interval: 10s
timeout: 5s
path: /health
backends:
- name: web-1
address: 10.0.1.10
port: 8080
weight: 1
- name: web-2
address: 10.0.1.11
port: 8080
weight: 1
Consumers
| Tool |
How It Uses Application/LoadBalancer |
| lay |
Installs the load balancer application (haproxy, traefik, envoy) |
| enjoin-service |
Enables/starts the load balancer service |
| weaver |
Generates configuration files (haproxy.cfg, traefik.yml, envoy.yaml) |