Antract: Zero-Downtime Deployments Without the Complexity
I needed zero-downtime deployments for a low-traffic service. The requirements were simple: no dropped connections during a restart, minimal infrastructure.
I tried caddy, haproxy, and traefik as the waiting layer. All were overkill โ too much config, too many moving parts for a low-traffic service.
Then I found 37signals' intermission project. Good concept: intercept traffic, show a maintenance page, drain connections, bring the app back up. But it was dated.
I forked and modernized it into Antract โ same idea, updated codebase.
The flow:
- Antract sits in front of your app
- On deploy: signal Antract to enter intermission mode
- In-flight requests finish; new requests get a 503 or wait
- Restart/redeploy your app
- Signal Antract to resume โ traffic flows again
No load balancer. No Kubernetes. No cloud magic. Just a small proxy you control.
Source: GitHub