مسعود مقینی
مسعود مقینی
خواندن ۱ دقیقه·۳ سال پیش

زنجیره‌ی روی‌داد ها در مایکروسرویس

منبع عکس :[1]
منبع عکس :[1]


معماری مایکروسرویس برای تحقق دو هدف کلی به کار میره :
1. نابستگی متقابل (decoupling) ، به این معنی که پیاده‌سازی و یا تغییر یک بخش ، وابستگی کمتری به پیاده‌سازی و منطق بخش های دیگه داشته باشه .
2. مقیاس پذیری افقی(horizontal scaling) ، به عنوان مثال اگر تو اسنپ سرویس قیمت‌گذاری درخواستش بالا رفت ، بتونیم با تخصیص منابع بیشتر برای همون سرویس ، ساعات اوج رو کنترل کنیم .

در معماری مایکروسرویس روی‌داد گرایی خیلی بکار میره ، اما یکی از مشکلاتی که بی توجهی بهش میتونه باعث وابستگی متقابل(coupling) در محیط به ظاهر مایکروسرویس بشه ، این هست که معلوم نیست هر روی‌داد به چه زنجیره از روی‌داد ها(event chains) منجر میشه و گاهی یک روی‌داد ، منجر به مجموعه‌ای از رویداد های به‌کلی مجزای دیگه میشه ، پس اگر چکاندن روی‌داد رو به عنوان یک کنش در نظر بگیریم، باید واکنش بقیه رو هم بدونیم تا منجر به فاجعه نشه ! و این همون چیزیه که از شرش به مایکروسرویس پناه بردیم !

از طرفی طراحی درست توالی روی‌داد ها و فرآیند ها ، در محیط های روی‌داد گرا اهمیت بسیار بیشتری داره .

این مفهوم رو بیایید با یه مثال ساده نگاه کنیم . فرض کنید اسنپ‌فود، برای فرآیند تایید و پرداخت سفارش ، دو راه‌کار جای‌گزین داشته باشه ، دقت کنید هردو فرآیند دقیقاً شامل مراحل یکسانی هستند اما تقدم و تاخرشون فرق میکنه ، میبینید که با یه تغییر ساده ، چه مسئله مهمی میتونه حل بشه (و معادلاً مسئله مهم دیگه ای به وجود بیاد !)

سناریویی که توش مشتری اذیت میشه
سناریویی که توش مشتری اذیت میشه
سناریویی که توش پشتیبان اسنپ‌فود و صاحب رستوران ، بار بیشتری متحمل میشه
سناریویی که توش پشتیبان اسنپ‌فود و صاحب رستوران ، بار بیشتری متحمل میشه



[1]الهام گرفته از
https://www.oreilly.com/library/view/practical-process-automation/9781492061441/




مایکروسرویسنرم‌افزار
مهندس نرم افزار و پژوهشگر یادگیری ماشین ، کتاب های مربوط به اقتصاد و سیاست رو در زمان آزاد مطالعه میکنم و مشتاقم راجع به اصول تامین مالی استارت آپ ها و خلق ارزش افزوده بیشتر یاد بگیرم
شاید از این پست‌ها خوشتان بیاید