-
Notifications
You must be signed in to change notification settings - Fork 0
[Phase 7] Implement advanced queue features (scheduling, rate limiting, routing) #47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: #25
Add new JavaScript feature modules under src/features/: - scheduler.js: Delayed messages, cron jobs, TTL, message expiration - rate-limiter.js: Sliding window counter, token bucket, per-queue/consumer limits - router.js: Topic-based routing with AMQP-style wildcards (*, #) - pubsub.js: Pub/sub patterns with topic management and message filtering Features include: - CronParser for 5-field cron expressions - Scheduler with delayed delivery and cron job management - SlidingWindowCounter and TokenBucket rate limiting algorithms - RateLimiter with multi-key tracking - DirectExchange, TopicExchange, FanoutExchange, HeadersExchange - TopicMatcher with wildcard pattern matching - Router for flexible message routing - PubSubBroker with subscription management - ObservableQueue for event-driven queue monitoring - QueueBackedPubSub for durable pub/sub with queue storage Add comprehensive unit tests for all features: - 22 scheduler tests - 41 rate-limiter tests - 72 router tests - 61 pubsub tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
⏳ Usage Limit ReachedThe automated solution draft was interrupted because the Claude usage limit was reached. 📊 Limit Information
🔄 How to ContinueOnce the limit resets at 1:00 AM, you can resume this session by running: (cd "/tmp/gh-issue-solver-1768771894624" && claude --resume cf5f0e63-23a5-4694-96c1-776f0670650b --model opus)📎 Execution log uploaded as Gist (2260KB) This session was interrupted due to usage limits. You can resume once the limit resets. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
Now working session is ended, feel free to review and add any feedback on the solution draft. |
|
🤖 AI Work Session Started Starting automated work session at 2026-01-19T00:00:49.655Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait working session to finish, and provide your feedback. |
|
|
Ensure all changes are correct, consistent and fully meet the requirements. |
|
🤖 AI Work Session Started Starting automated work session at 2026-01-20T22:33:46.712Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait working session to finish, and provide your feedback. |
Move tests from pubsub.rs, router.rs, and scheduler.rs into separate test modules following the existing crate pattern (e.g., client/tests.rs). This reduces line counts to under 1000 lines per file: - pubsub.rs: 1366 -> 990 lines - router.rs: 1009 -> 787 lines - scheduler.rs: 1055 -> 786 lines Also condensed some documentation comments to further reduce line counts. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add changeset documenting the minor version bump for: - Scheduling (CronParser, Scheduler, ScheduledQueue) - Rate Limiting (SlidingWindowCounter, TokenBucket, RateLimiter, RateLimitedQueue) - Routing (TopicMatcher, Exchanges, Router, RoutedQueueManager) - Pub/Sub (MessageFilter, PubSubBroker, ObservableQueue, QueueBackedPubSub) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
Now working session is ended, feel free to review and add any feedback on the solution draft. |
Summary
Implements Phase 7 advanced queue features for both JavaScript and Rust implementations:
Features Implemented
Scheduling
Rate Limiting
Routing
*and#wildcardsPub/Sub
Files Added/Modified
JavaScript:
js/src/features/scheduler.js- Delayed messages and cron schedulingjs/src/features/rate-limiter.js- Rate limiting with sliding windowjs/src/features/router.js- Topic-based routing and exchangesjs/src/features/pubsub.js- Publish/subscribe patternsjs/tests/scheduler.test.js- Scheduler unit testsjs/tests/rate-limiter.test.js- Rate limiter unit testsjs/tests/router.test.js- Router unit testsjs/tests/pubsub.test.js- Pub/sub unit testsjs/.changeset/phase7-advanced-features.md- Changeset for releaseRust:
rust/src/features/scheduler.rs- Delayed messages and cron schedulingrust/src/features/rate_limiter.rs- Rate limiting implementationrust/src/features/router.rs- Topic-based routingrust/src/features/pubsub.rs- Pub/sub patternsrust/src/features/scheduler_tests.rs- Scheduler testsrust/src/features/router_tests.rs- Router testsrust/src/features/pubsub_tests.rs- Pub/sub testsTest Plan
cargo test)Related Issues
Closes #25
🤖 Generated with Claude Code