Support updating PCGroup filters dynamically#41
Closed
colprog wants to merge 3 commits intosynadia-io:Multiple-Subscription-Filtersfrom
Closed
Support updating PCGroup filters dynamically#41colprog wants to merge 3 commits intosynadia-io:Multiple-Subscription-Filtersfrom
colprog wants to merge 3 commits intosynadia-io:Multiple-Subscription-Filtersfrom
Conversation
* Add support for multiple filters in static and elastic consumer group configurations Refactored filtering logic, added utility methods, extended validations, updated related tests, and enhanced handling of wildcard-based partitioning. * Add test to verify partitioning behavior with full-subject hash in elastic consumer groups. * Add compatibility notes for .NET-only multi-filter and [-1] sentinel features in consumer groups * Add server version guard in elastic consumer group tests for [-1] sentinel support. * Update compatibility notes for .NET-only multi-filter and [-1] sentinel features in consumer group configurations * Refactor elastic consumer group configuration to replace wildcards with `NatsPcgPartitioningFilter`, simplify validations, and update related tests. * Update partitioning filter in paritiy * fix build * tests: fix elastic PCGroups CI failures Use unique GUID-based subject prefixes in all elastic tests to prevent "subjects overlap with an existing stream" errors when multiple TFMs share the same NATS server in CI. Add SkipBelow212Async to the empty PartitioningFilters test since full-subject partitioning requires NATS 2.12+. Fix the work-queue stream name assertion (was incorrectly prefixed with "pcg-") and add proper cleanup in try/finally. * tests: add Go interop tests for elastic PCGroups Use GoHarness to verify cross-language interop with orbit.go pcgroups v0.2.0. Three tests cover .NET-creates/Go-consumes, Go-creates/.NET-consumes, and empty PartitioningFilters interop. * tests: skip Go interop consume tests on NATS < 2.11 ElasticConsume uses priority groups which require NATS 2.11+. The Go process exits with an error on 2.10, causing the test to fail on ReadLineAsync.
Collaborator
|
Hey @colprog, #40 is now merged. You'll need to rebase onto main, your commit (dca419c) cherry-picks cleanly so that should be straightforward. Also update the PR base branch to main. cc @jnmoyne, this adds runtime filter add/delete for elastic PCGroups which isn't in orbit.go yet. Worth a look before we go ahead with it. |
dca419c to
0828d5d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds runtime partitioning-filter management for Elastic PCGroups and fixes NatsPcgPartitioningFilter value semantics.
Changes