As of now, the startup healthcheck is always synchronous. As a result, when there are unreachable dependencies and/or dependencies without NAME installed (or any other unresponsive situation from the dependencies) at various levels, the application might take up to 20 seconds to start (max. timeout for the startup healthcheck as of now).
When ThrowOnDependenciesFail is false, that wait is not necessary at all and is indeed detrimental to NAME acceptance and roll-out.
Changes
If ThrowOnDependenciesFail = true, startup healthcheck should be synchronous and should throw as expected;
If ThrowOnDependenciesFail = false, startup healthcheck will be asynchronous and should not throw any exception;
An event will be created and invoked when an exception is raised, allowing for the developer to decide what to (i.e. if the dependency is quite critical to the app, raise some alert mechanism or even kill the app)
As of now, the startup healthcheck is always synchronous. As a result, when there are unreachable dependencies and/or dependencies without NAME installed (or any other unresponsive situation from the dependencies) at various levels, the application might take up to 20 seconds to start (max. timeout for the startup healthcheck as of now).
When ThrowOnDependenciesFail is false, that wait is not necessary at all and is indeed detrimental to NAME acceptance and roll-out.
Changes