code: public Set<TraceeBackendProvider> getBackendProviders() {
  		// Create a working copy of Cache. Reference is updated upon cache update.
  		final Map<ClassLoader, Set<TraceeBackendProvider>> cacheCopy = providersPerClassloader;
  
  		// Try to determine TraceeBackendProvider by context classloader. Fallback: use classloader of class.
  		final Set<TraceeBackendProvider> providerFromContextClassLoader = getTraceeProviderFromClassloader(cacheCopy,
  			GetClassLoader.fromContext());
  		if (!providerFromContextClassLoader.isEmpty()) {
  			return providerFromContextClassLoader;
  		} else {
  			return getTraceeProviderFromClassloader(cacheCopy, GetClassLoader.fromClass(BackendProviderResolver.class));
  		}
  	}
docs: Find correct backend provider for the current context classloader. If no context classloader is available, a
  fallback with the classloader of this resolver class is taken
  
  @return A bunch of TraceeBackendProvider registered and available in the current classloader