π Saga Pattern Guide in Microservices with Node.js
#nodejs #guide #pattern
There are 2 approaches to implementing the Saga pattern: Choreography-Based Saga and Orchestration-Based Saga.
Choreography-Based Saga approach and a real-world hotel room reservation scenario with 3 microservices: Booking Service, Payment Service, and Notification Service.
β Article link
#nodejs #guide #pattern
The Saga pattern addresses this by breaking a transaction into smaller, local transactions handled by different services.
There are 2 approaches to implementing the Saga pattern: Choreography-Based Saga and Orchestration-Based Saga.
β Orchestration-Based Saga: A single orchestrator (arranger) manages all the transactions and directs services to execute local transactions.
β Choreography-Based Saga: All the services that are part of the distributed transaction publish a new event after completing their local transaction.
Choreography-Based Saga approach and a real-world hotel room reservation scenario with 3 microservices: Booking Service, Payment Service, and Notification Service.
β Booking Service: Starts the process by reserving a room. This is the first local transaction. Once successful, it sends a message to the Payment Service to process the payment.Prerequisites
β Payment Service: Receives the message and processes the payment. If the payment is successful, it commits its local transaction and informs the Booking Service and Notification Service.
β Notification Service: On receiving confirmation of successful payment, it sends a booking confirmation email to the user.
β Handling Failures: If the Payment Service encounters an issue (e.g., payment decline), it returns a failure message to the Booking Service. The Booking Service then executes a compensating transaction to cancel the room reservation, ensuring the system returns to its original consistent state.
β Node.js project with necessary dependencies (express, amqplib, nodemailer, mongoose, dotenv) installed.
β RabbitMQ server running locally or remotely.
β Email server or service for the Notification Service (e.g., Nodemailer with SMTP or an email API service).
β Article link
π2
#angular #services #strategy #pattern #error #errorHandling #guide
β Article link
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM