2️⃣ Point To Point Async Integration ⚡️📩(بخش دوم)
ءPoint To Point Async Integration یک الگوی ارتباطی هست که در آن یک سرویس، پیامها را از طریق یک Message Queue برای سرویس دیگر ارسال میکند.
برخلاف ارتباط synchronous، فرستنده منتظر پاسخ نمیماند و به کار خودش ادامه میدهد؛ درحالیکه سرویس گیرنده پیامها را با سرعت و زمانبندی خودش مصرف میکند.
این موضوع یک رابطه غیرهمزمان اما همچنان مستقیم بین دو سرویس ایجاد میکند.
🔧 How it works:
🔸️ءService A پیام را به یک صف اختصاصی که فقط Service B از آن مصرف میکند ارسال میکند
🔹️ءMessage Queue بهعنوان بافر بین فرستنده و گیرنده عمل میکند
🔸️ءService A بلافاصله بعد از ارسال پیام ادامه پروسه را انجام میدهد
🔹️ءService B پیامها را در زمان موردنظر خودش مصرف میکند
🔸️ءMessage Broker تضمین میکند که پیامها بهدرستی و قابلاعتماد ارسال شوند
🔹️اگر سرویـس B موقتاً در دسترس نباشد، پیامها در صف باقی میمانند
🔸️ءDead Letter Queue برای پیامهایی که بعد از چند تلاش دوباره fail میشوند استفاده میشود
✅ Benefits:
• ءDecouples services in time → سرویسها میتوانند با سرعتهای متفاوت کار کنند
• ءResilience بالاتر → قطع بودن Service B روی A تأثیری ندارد
• ءLoad leveling طبیعی از طریق صف
• ءAsync processing برای کارهای طولانی بدون بلاک کردن سرویس فرستنده
• ءScalability آسان با افزودن Consumerهای بیشتر
❌ Drawbacks:
• ءMessage Broker یک وابستگی اضافه است و ممکن است Single Point of Failure ایجاد کند
• منجر به Eventual Consistency میشود
• ءDebugging سختتر بهدلیل جریان غیرهمزمان پیامها
🎯 Use cases:
1️⃣ءBackground Job Processing
2️⃣سیستمهای پردازش سفارش (Order Fulfillment)
3️⃣ءEmail / Notification Services
4️⃣سیستمهایی با Load نامتوازن که Queue نقش بافر ایفا میکند