Skip to content

Conversation

@olix0r
Copy link
Member

@olix0r olix0r commented Oct 14, 2025

No description provided.

… updates

This refactors the destination API's endpoint translator and federated
service watcher to use a simpler channel-based architecture for sending
updates to gRPC streams.

Key changes:

* Remove Start/Stop goroutine lifecycle management from endpoint translators
  - Translators no longer manage their own goroutines
  - Add mutex to protect concurrent access to address maps
  - Methods (Add/Remove/NoEndpoints) now directly modify state with locking
* Simplify message flow in server.Get handler
  - Create single messages channel per stream in Get handler
  - Spawn goroutine to forward messages from channel to gRPC stream
  - Pass messages channel and resetStream function to translators
  - Remove StreamQueueCapacity parameter from translator constructors
* Refactor federated service watcher
  - Remove synchronizedGetStream wrapper and its goroutine
  - Pass messages channel directly to all translators
  - Update Subscribe/Unsubscribe signatures to accept channels instead of streams
  - Simplify subscriber lifecycle management

* Delete syncronized_get_stream.go (no longer needed)

All tests pass with race detection enabled.
@olix0r olix0r requested a review from a team as a code owner October 14, 2025 14:00
@olix0r olix0r marked this pull request as draft October 14, 2025 17:44
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.

2 participants