Cannot urge how many times it's saved my ass. Not to mention it's very easy to scale!
We're switching to openresty + LUA proxying to a co-located elixir server that will handle the access requests.
However, I do say, whatever is easier for you go for it, at the end of the day, it's business value that matters the most! If the refactor increases your business value, do it! If not? Then... don't touch it!
Not sure if it would be useful for your case but it's a new-ish API gateway that I've been playing around with, although haven't done anything serious or production-level with it.
The subrequest can return response headers that are available in `$upstream_http_*` variables, which can br used to dynamically route the original request.
http://nginx.org/en/docs/http/ngx_http_auth_request_module.h...
https://www.arpalert.org/src/haproxy-lua-api/1.8/index.html https://www.techietown.info/2016/10/haproxy-with-lua-support... https://github.com/zareenc/haproxy-lua-examples
My need is some rather customized request routing, currently done by Python (fast enough to do thousands of RPS in just Python with PyPy) but it'd nice to use a standard product.
For every incoming request, I want to decide where it gets routed on a per-request basis to but not necessarily immediately (so some callback / event based / out of process interface is needed) and I want to be notified when the request finishes or fails.
Basically the request for /foo/bar may need to spawn a new foo-bar management process which can take a while to warm up, and appear at some unknown future destination.
I had a look at e.g. Traefik, Kong, Envoy but they didn't seem like quite the right fit.
Using e.g. Proxygen seems like overkill.