Conversation
- Split Google Pub/Sub implementation into pkg/pubsub/google/provider.go - Replace single provider field with map-based provider registry - Move Serve() into PubSubProvider interface (provider-owned push handling) - Add SubscriberMessage wrapper replacing raw any in Consume signature - Add backward compatibility: WrapLegacySubscriber, deprecated type aliases - Update mocks, tests, and examples for new interfaces - Add docs/pubsub.md documentation - Add openspec/specs/pubsub/spec.md specification - Fill out openspec/project.md with project details Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add pkg/pubsub/supabase/ provider with WebSocket client, Phoenix channels protocol, heartbeat, reconnect, broadcast/presence/postgres_changes support - Add SupabaseRealtimeProvider adapter in pubsub.go with DefaultWebSocketDialer - Add ChannelType, Table, Schema, EventFilter methods to SubscriberHandler interface - Add RealtimeEventFilter constants in pkg/supabase/constants - Add unit tests for provider (86.3% coverage) and adapter - Fix errcheck lint issues in Google Serve handler - Update docs/pubsub.md with Supabase Realtime section and examples - Update openspec specs and archive change proposal Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Examples directory is gitignored and should not be part of PR changes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Codecov Report❌ Patch coverage is
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
Add tests for subscriberContext, SubscriberBase defaults, PubSubManager.Serve branches, legacy adapter methods, GooglePubSubProvider.Serve/CreateSubscription, and SupabaseRealtimeProvider adapter methods. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
toopay
approved these changes
Feb 20, 2026
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.
Add Supabase Realtime as a second Pub/Sub provider, enabling subscribers to listen to real-time database changes, broadcast messages, and presence events via WebSocket (Phoenix Channels protocol).
This PR refactors the pubsub architecture from Google-only to multi-provider, then adds the Supabase Realtime provider on top.
What changed
Architecture (commit 74e743d):
Supabase Realtime Provider (commit c1ad763):
Type of change
Checklist
Commands Run
golangci-lint run # clean
go vet ./... # clean
go test ./... # all pass
go test -cover ./pkg/pubsub/supabase/ # 86.3% coverage
Further comments