Skip to content

Argus v1.0.0

Choose a tag to compare

@github-actions github-actions released this 29 Apr 18:08

Haribon Release Notes

Version 1.0.0 — Initial Stable Release

Haribon v1.0.0 is the first stable public release of a lightweight HTTP load balancer written in Go.

This version delivers core reverse proxy and load balancing capabilities with built-in health awareness, making it suitable for local environments, labs, small services, and learning modern traffic distribution concepts.


Core Features

Round Robin Load Balancing

Incoming requests are distributed sequentially across available backend servers.

Request 1 -> Backend A
Request 2 -> Backend B
Request 3 -> Backend C
Request 4 -> Backend A

This improves traffic distribution and resource utilization.

Active Backend Health Checks

Haribon continuously monitors backend availability.

  • Automatic health probe cycle
  • Timeout-based detection
  • HTTP status validation (200-399)
  • Removes unhealthy nodes from rotation

If a backend fails, traffic automatically shifts to healthy nodes.

Automatic Failover

When a request to a backend fails:

  • Backend is marked unhealthy
  • Another healthy backend is selected automatically

This increases availability without manual intervention.

Reverse Proxy Engine

Haribon acts as an HTTP reverse proxy.

Clients connect to:

localhost:4444

Haribon forwards requests to backend servers and returns their responses transparently.

Safe HTTP Header Handling

To improve compatibility with browsers and clients, Haribon filters problematic hop-by-hop headers:

  • Content-Length
  • Transfer-Encoding
  • Connection

This prevents:

  • Broken responses
  • Browser rendering errors
  • ERR_CONTENT_LENGTH_MISMATCH

Client Header Forwarding

Haribon forwards request headers such as:

  • Authorization
  • Cookie
  • Accept
  • User-Agent

This enables proxying of authenticated APIs and modern web applications.

YAML Configuration

Simple configuration using YAML.

host: "0.0.0.0"
port: 4444

backends:
  - url: "http://localhost:4441"
  - url: "http://localhost:4442"
  - url: "http://localhost:4443"

Environment Variable Overrides

Supports runtime overrides:

HARIBON_HOST
HARIBON_PORT

Useful for Docker and container deployments.

Request Logging

Each request includes:

  • Method
  • Path
  • Backend selected
  • Status code
  • Duration

Example:

GET /api -> http://localhost:4442 [200] (3ms)

Architecture

Haribon v1.0.0 is a:

Layer 7 HTTP Load Balancer / Reverse Proxy

Supports:

  • HTTP request forwarding
  • Round robin scheduling
  • Health-aware routing
  • Basic failover

Usage

haribon start --config haribon-config.yml

Best Use Cases

Ideal for:

  • Local development environments
  • Homelab services
  • API testing
  • Multi-instance apps
  • Learning load balancer internals
  • Lightweight internal tools

Known Limitations

Not included in v1.0.0:

  • HTTPS / TLS termination
  • Sticky sessions
  • Weighted balancing
  • Prometheus metrics
  • Admin dashboard
  • Graceful shutdown
  • Retry backoff
  • WebSocket optimizations
  • Path-based routing

Summary

Haribon v1.0.0 delivers a fast, lightweight, understandable load balancer with real production concepts:

  • Reverse proxying
  • Round robin routing
  • Health checks
  • Failover
  • Logging
  • Configurable deployment