hld

mermaid-diagram (11).svg

lld

API Endpoints

Method Endpoint Purpose
GET /info Service health check
POST /tickets Create email ticket (status = PENDING) for async dispatch

Critical Logic Flow: Async Queue Processing

Scenario: The Booking Service successfully processes a payment and pushes a notification event. The Notification Service consumes it and sends an email.

mermaid-diagram (12).svg

. Important Points (The "Why")

  1. Why use RabbitMQ instead of calling the Email Service directly via HTTP?
  2. Why require manual acknowledgement (channel.ack)?
  3. Why maintain a Ticket table in the database?