Skip to content

Conversation

@jianhonggalaxy
Copy link

feat: implement parallel RPC client for load balancing and improved reliability

  • Add ParallelRPCClient for managing multiple RPC/API endpoints
  • Implement round-robin load balancing with automatic health checking
  • Update CommonApp to support parallel client alongside traditional client
  • Modify VoteIndexer to use parallel client when available
  • Add fallback mechanism to traditional sequential health checking
  • Create parallel-aware API functions for future use
  • Add comprehensive test coverage for parallel client functionality

This implementation reduces data gaps during RPC failover by:

  1. Continuously monitoring all endpoint health in background
  2. Load balancing requests across healthy endpoints
  3. Eliminating sequential health check delays
  4. Providing seamless failover without data collection interruption

…eliability

- Add ParallelRPCClient for managing multiple RPC/API endpoints
- Implement round-robin load balancing with automatic health checking
- Update CommonApp to support parallel client alongside traditional client
- Modify VoteIndexer to use parallel client when available
- Add fallback mechanism to traditional sequential health checking
- Create parallel-aware API functions for future use
- Add comprehensive test coverage for parallel client functionality

This implementation reduces data gaps during RPC failover by:
1. Continuously monitoring all endpoint health in background
2. Load balancing requests across healthy endpoints
3. Eliminating sequential health check delays
4. Providing seamless failover without data collection interruption

Addresses empty index pointer issues by ensuring continuous data flow
even when individual RPC endpoints fail, reducing need for pod restarts.
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

Successfully merging this pull request may close these issues.

1 participant