Conversation
Covers fs2 Stream-based message delivery, ValkeyPubSub algebra, Glide queue-mode polling architecture, and shared subscription state management. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add ValkeyChannel, ValkeyPattern opaque types and ValkeyPatternEvent - Add PubSubStats, PublishCommands, SubscribeCommands, ValkeyPubSub traits - Add PubSubState for managing channel/pattern subscription state with Topic-based fan-out Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…oint - Fix publish return type from F[Long] to F[Unit] (Glide returns "OK") - Add MessageDispatcher: polls getPubSubMessage in a loop, dispatches to channel/pattern subscribers via Topic, with error recovery - Add LiveValkeyPubSub: full implementation of ValkeyPubSub trait with ref-counted subscriptions, automatic cleanup on last unsubscribe - Add ValkeyPubSub companion with make/utf8 factory methods that start a background poll fiber managed by Resource Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… multi-subscriber Implements Tasks 8, 9, and 10 of the pub/sub feature plan: - Basic subscribe/publish flow (3 tests) - Pattern subscriptions (psubscribe/punsubscribe, 3 tests) - Multi-subscriber scenarios and cleanup (3 tests) Key test patterns: - Use Stream.sleep before publishing to allow subscription registration - Wrap IO results in Stream.eval for concurrently - ValkeyPatternEvent has plain K fields, not wrapped types - Tests compile but require running Valkey container to execute Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…terns Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add comprehensive load/stress testing for pub/sub: - High throughput: 10,000 messages on single channel - Many channels: 100 concurrent channel subscriptions - Many subscribers: 50 subscribers on one channel - Rapid subscribe/unsubscribe: 50 cycles - Sustained publish rate: 1,000 msg/sec for 5 seconds All tests verify message ordering and completeness under load. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- fromCertFile[F]: load PEM from disk path (blocking via Sync) - fromCertString: parse PEM from String Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pattern is now ValkeyPattern[K], channel is ValkeyChannel[K] — enforces type safety through the event boundary rather than exposing raw K. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
No description provided.