bchewy / bolabola

Bola Bola: A sleek match-booking platform using microservices and Stripe payments. Features real-time match streaming and highlights. Perfect for sports enthusiasts.
2 stars 2 forks source link

7 - Notification Service not implemented #2

Open bchewy opened 5 months ago

bchewy commented 5 months ago

The notification microservice is designed to perform the following actions in response to incoming messages from RabbitMQ with a routing key matching the pattern notification.*:

Receive Messages:

  1. Continuously listen for incoming messages from RabbitMQ. Specifically, subscribe to the notifications exchange and bind to a queue with the routing key notification.*.

  2. Process and Send Email Notifications: Upon receiving a message, parse the message payload to extract notification details such as the recipient's email address, email subject, and body. Utilize AWS Simple Email Service (SES) to send the email notification to the user. Ensure that error handling and logging are in place for successful and failed email deliveries.

  3. Log Notification Details:

After sending the email, make a call to the log microservice endpoint to record the notification event. This should include the notification's metadata, such as the timestamp, recipient email, and the status of the email delivery (success or failure).

  1. Microservice Lifecycle: The microservice should be stateless, with the ability to be scaled horizontally. Ensure graceful shutdown procedures are in place to handle service interruptions without losing messages or causing duplicate notifications.
bchewy commented 4 months ago

botocore.errorfactory.MessageRejected: An error occurred (MessageRejected) when calling the SendEmail operation: Email address is not verified. The following identities failed the check in region AP-SOUTHEAST-1: emailhere@hotmail.com

As part of AWS's SES restrictions within the sandbox, there is a requirement to verify users before allowing emails to be sent, to remove this constraint, we can..

  1. Include a user to confirm their email (and update SES in the process)
  2. Upgrade to production access on AWS SES, which i've requested as of 26/02/24 0120
bchewy commented 4 months ago

Base code completed in #21, some modifications might need be made with SES's update of production access, or if confirmation of emails should be required.

bchewy commented 4 months ago

As of 28feb, our AWS account has been updated to use production SES, with a limit of 50k a day!