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

A new minimal HTTP proxy called Kamal Proxy, built to enable zero‑downtime deployments on bare‑metal servers, is prompting debate over when simple, homegrown tooling is appropriate versus relying on mature solutions like Kubernetes, Caddy, Traefik, or HAProxy. Supporters argue that most companies have predictable, modest traffic and can save substantial money by exiting expensive public cloud stacks in favor of simpler, over‑provisioned hardware plus lightweight deployment tools. Critics question the decision to reinvent reverse‑proxy infrastructure, raise concerns about missing features and robustness, and note that true zero‑downtime deployments still demand careful database migration strategies and operational sophistication.

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.