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

How to avoid global blocking in distributed event handlers #20020

Closed
1 task done
one-sword opened this issue Jun 12, 2024 · 2 comments · Fixed by #21716
Closed
1 task done

How to avoid global blocking in distributed event handlers #20020

one-sword opened this issue Jun 12, 2024 · 2 comments · Fixed by #21716

Comments

@one-sword
Copy link

Is there an existing issue for this?

  • I have searched the existing issues

Is your feature request related to a problem? Please describe the problem.

I want to minimize the impact of an entire inbox queue being blocked due to an exception in one event handler in a distributed event processing system. For example, by distinguishing events generated by different aggregate roots, ensuring that only events from the same aggregate root are executed in one queue with ordered execution and error retries, rather than having a single queue for the entire inbox. However, it seems that there is currently no way to achieve this.

Describe the solution you'd like

I hope to be able to differentiate inbox queues based on certain conditions to avoid global blocking.

Additional context

No response

@leuoson-coding
Copy link

We are currently seeking a solution as our production environment has been impacted. We are evaluating approaches to address the issues that have arisen. Specifically, we have accumulated over 60,000 data entries in a single queue. Preliminary analysis suggests that a specific event may be causing the backlog; however, it appears that all events have been affected to some extent.
image

@maliming
Copy link
Member

maliming commented Dec 24, 2024

hi

I will add Filter parameter to GetWaitingEventsAsync. so you can get the events by some conditions.

Then you can add your background worker to process specific events.

See #21716

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

Successfully merging a pull request may close this issue.

3 participants