Service Discovery is a very useful feature for when you have a dynamically changing upstream service set.
For example, you have ten Docker containers that are running the same service, and you are load balancing between them, if one or more fail, a new service will spawn but probably on a different IP address.
Now the Gateway would need to either be manually reconfigured, or, more appropriately, detect the failure and reconfigure itself.
This is what the service discovery module does.
We recommend using the SD module in conjunction with the circuit breaker features, as this makes detection and discovery of failures at the gateway level much more dynamic and responsive.