spring-cloud/spring-cloud-circuitbreaker

Add Support For Reactive Bulkheads

ryanjbaxter opened this issue · 5 comments

Hi @ryanjbaxter, I checked the link you shared.

I made an implementation for Mono in the Resilience4jBulkheadProvider class as follows. (I will do similar development in Flux)
According to your comment, I can move forward on this task.

	public <T> Mono<T> decorateMono(String id, Map<String, String> tags, Mono<T> mono) {
		Resilience4jBulkheadConfigurationBuilder.BulkheadConfiguration configuration = configurations
				.computeIfAbsent(id, defaultConfiguration);
		Bulkhead bulkhead = getOrCreateBulkhead(id, configuration.getBulkheadConfig(), tags);
		return mono.transformDeferred(BulkheadOperator.of(bulkhead));
	}

Sure PRs always welcome

Hi @ryanjbaxter,
The purpose of this annotation@ClassPathExclusions is an decoupling used to prevent conflicts between classes and to start the application faster? Resilience4JAutoConfigurationWithoutMetricsTest class contains the following "reactor-core-*.jar" definition for exclusion. Will removing "reactor-core-*.jar" parameter cause any side effect in the project?

Its hard for me to say for sure as to why it is there. Likely to exclude some classes related to micrometer to make sure we are not depending on them and the autoconfiguration classes work properly. You can remove it and see if the test still works.

When can we expect the support for Reactive Bulkheads?