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

Idea sketch / concept art: Round Robin Balancing #41

Closed
wants to merge 12 commits into from

Conversation

blakesmith
Copy link
Contributor

This is untested "concept art" to demonstrate some of the ideas of how we might add round-robin publishing to the client. There are definitely concurrency things to work out (misuse of atomics), as well as some potentially slow paths along the publishing path like using streams.

This is meant more just to get some core ideas across, that we can refine and iterate on together:

  • I think a lot of the complexity of the existing mainline publisher is due to connection failures being tracked at the completely wrong level (on the Publisher directly). My draft attempts to move connection failure state down to the connection itself.
  • I played around with a PublisherConnectionPool abstraction to manage handing out connections.
  • Relocating these concerns enabled keeping the PublisherBalanceStrategy interface really slim: Just one method that hands out connections from the pool.

@blakesmith blakesmith closed this Sep 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant