This is going to come off as incredibly dense, but if the upstream services' (goodreads, etc) DNS names are statically configured in app, why do we need all this glue? Can't we just point a DNS record at an LB and add/remove instances from the LB, making it entirely opaque to the downstream service (portal)?
I'm not seeing what this buys. Maybe I'm dense. Anyone care to help me understand the value here?
Looking at the code further, it looks like there are failsafe hardcoded DNS names, but otherwise the DNS names for an upstream service are delivered via an ENV variable. I don't get what's happening here that's magical.