Hi devs, I'd like to share an observation that we have too many @VisibleForTesting constructors that only used in test scope such as ExecutionGraph and RestClusterClient.
It would be helpful if we introduce Builders in test scope for build such instance and remain the production code only necessary constructors. Otherwise, code becomes in mess and contributors might be confused by a series constructors but some of them are just for testing. Note that @VisibleForTesting doesn't mean a method is *only* for testing. Best, tison.