Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add adaptive concurrency limiters #474

Open
Ladicek opened this issue Nov 18, 2019 · 2 comments
Open

add adaptive concurrency limiters #474

Ladicek opened this issue Nov 18, 2019 · 2 comments

Comments

@Ladicek
Copy link
Contributor

Ladicek commented Nov 18, 2019

In the cloud world, statically defined bulkheads are not a great fit for limiting concurrency. We should add dynamic (adaptive) concurrency limiters, modeled after Netflix's https://github.com/Netflix/concurrency-limits.

I'm thinking "client-side" concurrency limiter would be a simple CDI interceptor, just like @Bulkhead (we could probably call it @AdaptiveBulkhead?). And we could also add a "server-side" concurrency limiter, which would probably be a few config properties and apply to the entire application. I didn't have much time to look into this yet, so I'm filing this issue just to gather some feedback.

@Emily-Jiang
Copy link
Member

@Ladicek will try it out on SmallRye first and come back with more findings.

@Emily-Jiang
Copy link
Member

We discussed on today's call with @Ladicek @Azquelt @Joseph-Cass , actually, we could use the existing annoation but make the configuration dynamically configured by the runtime. For instance, if a method takes a long time to finish, the bulkhead size should be shrinked. The similar approach could apply to other annotations such as Retry. If one previous Retry was configured for 10 times, the reality is that nothing worked. The configuration for maxRetries should be reduced in the next execution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants