HerokuFred HebertAnnouncement
Heroku Proxying becomes Free Software
Summary
Heroku’s HTTP routing stack has three layers: state synchronization, request routing, and HTTP proxying. The platform team open-sourced the proxying layer as Vegur, an Erlang library that validates, normalizes, and forwards requests between clients and dynos. Unlike a conventional nginx reverse proxy, Vegur’s hosts and configuration are fully programmable, allowing state from hardcoded values, files, databases, or direct updates, while routing algorithms and debugging headers can also remain dynamic. Its delegated capabilities include domain lookup, backend selection, interface choice, resource checkout and checkin, customizable failure pages, per-application or per-backend controls for tunneling 100-continue requests, and upstream or downstream header insertion. Vegur had run in production on Heroku for over a year and powered the Heroku Private Spaces router.
Context
Existing proxying mechanisms supported fewer of the dynamic features needed at Heroku’s scale. The release was intended to help the community develop routing products and enrich the routing ecosystem.
Approach / What changed
The HTTP proxying layer was released as Vegur, a programmable Erlang library that compatible routers can use independently of their routing logic. It supports dynamic hosts, configuration, routing algorithms, debugging headers, backend selection, resource management, error pages, request tunneling controls, and header insertion.
Takeaways
Vegur separates programmable HTTP proxying from the router’s higher-level routing logic, allowing compatible routers to reuse the proxying layer.
The library supports domain lookup, backend and interface selection, resource checkout and checkin, customizable failure pages, and upstream or downstream header insertion.
Vegur had been used in production on Heroku for over a year and also powered routing in Heroku Private Spaces.
Source and freshness
- Source
- heroku.com
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.