Skip to content

Implement the Notify Queue System #1

@dev-wantap

Description

@dev-wantap

Implement the Notify Queue System

Objective

Implement a notification system where messages sent to RabbitMQ are consumed by messenger-specific consumers to notify users

Tasks

Consumer Implementation

  • consumers/telegram_sender.py - Message sending via Telegram Bot API
  • consumers/discord_sender.py - Message sending via Discord API
  • consumers/slack_sender.py - Message sending via Slack Bot API
  • consumers/consumer.py - Common base class

RabbitMQ Integration

  • services/rabbitmq.py - Message publishing service implementation
  • Connect each consumer with RabbitMQ (message receiving and processing)

Configuration & Environment

  • core/config.py - Add messenger API keys and RabbitMQ configuration
  • main.py - Start consumer background tasks

Tech Stack

  • Message Queue: RabbitMQ
  • Telegram: python-telegram-bot
  • Discord: Discord API (aiohttp)
  • Slack: Slack Bot API (slack-sdk or requests)

Message Structure (Example)

{
  "content": "Player Steve has joined the server.",
  "priority": 1,
  "timestamp": "2025-07-11T10:30:00Z"
}

Success Criteria

  • Messages sent to RabbitMQ are properly delivered to each messenger
  • If one consumer fails, other consumers continue to work normally
  • Message delivery failures are logged

Follow-up Tasks

  • Unit test implementation (separate issue)
  • Enhanced error handling and retry logic
  • Message template system implementation
  • Dead Letter Queue (DLQ) implementation for failed messages

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions