Kamal Proxy – A minimal HTTP proxy for zero-downtime deployments

Project purpose and target use cases

  • Kamal Proxy is presented as a minimal HTTP proxy to enable zero‑downtime deployments, especially in a “simple Docker on bare metal” setup.
  • Many commenters argue this is well‑suited to the vast majority of companies with steady, non‑“unicorn” traffic, especially B2B SaaS with predictable load.
  • Others note the docs and examples are confusing, particularly how multiple replicas and versioned services are intended to work in practice.

Cloud vs bare metal cost and performance

  • Strong theme: major public clouds are seen as overpriced for typical workloads; running over‑provisioned dedicated servers 24/7 can still be cheaper.
  • Several emphasize that cloud hardware (especially storage) is relatively slow; local NVMe and better single‑thread CPU can dramatically improve performance.
  • Counterpoint: for many apps, network latency and overall stack complexity dominate disk latency, so bare‑metal wins may be marginal at user level.

Zero‑downtime deployments and database migrations

  • Consensus: ZDD requires both app versions running concurrently and a load balancer shifting traffic.
  • Database schema changes must be backwards‑compatible for at least one deploy cycle.
  • Recommended practices:
    • Decouple migrations from deploys and run them manually or in controlled steps.
    • Separate schema vs data migrations; avoid long‑locking operations.
    • Use tools that enforce “safe” migrations and/or multi‑version schema strategies.
  • Some argue that for many orgs, brief maintenance windows are effectively “zero enough.”

Simplicity vs Kubernetes and accusations of NIH

  • Kamal (and Kamal Proxy) are framed as a simpler, imperative alternative to Kubernetes/Swarm.
  • Critics see it as re‑implementing features that mature proxies and orchestrators (Kubernetes, k3s, Swarm + ingress) already provide.
  • Concerns include long‑term complexity creep, “resume‑driven” or NIH development, and tech debt compared to battle‑tested software.

Proxy implementation, SSL, and robustness

  • Kamal Proxy uses Go and automatic TLS; some praise the minimalism.
  • Others, including maintainers of competing proxies, call it “undercooked”:
    • Auto‑SSL via basic libraries without shared storage complicates horizontal scaling and rate limits.
    • Limited handling of issuer fallback, rate‑limit avoidance, ARI, and trusted proxy headers.
  • Multiple commenters say existing tools like Caddy, Traefik, HAProxy, or nginx already solve zero‑downtime, health checks, and “traffic pausing” more robustly.