عنوان:

‫LiteBus: یک جایگزین رایگان و متن‌باز برای MediatR


نویسنده: وحید نصیری
تاریخ: ۱۴۰۴/۰۲/۰۱ ۰۸:۳۹
آدرس: www.dntips.ir
این ابزار در طول پنج سال گذشته نگهداری شده و تجربه استفاده موفقیت‌آمیز آن در محیط‌های تولیدی در محل کار فعلی و قبلی نویسنده گزارش شده است. انگیزه اصلی برای توسعه LiteBus (لایت‌باس) به سال ۲۰۲۰ بازمی‌گردد، زمانی که این توسعه‌دهنده در یک شرکت رسانه‌ای دیجیتال مشغول ساخت یک سیستم مدیریت محتوا (CMS) برای پردازش حجم بالایی از محتوا بوده است. در آن پروژه، معماری مبتنی بر DDD (دامِین دِریوِن دیزاین - طراحی مبتنی بر دامنه) و CQS (فرمان جداسازی مسئولیت پرس و جو - Command Query Responsibility Segregation) به کار گرفته شده بود. در حالی که MediatR به عنوان یک راهکار متداول در بین تیم‌های توسعه مطرح بود، نتوانست نیازهای خاص این پروژه را به طور کامل پوشش دهد. نیاز به رابط‌هایی که مستقیماً مفاهیم CQS (سی‌کیو‌اس) را منعکس کنند، قابلیت پخش جریانی (stream) مجموعه‌های داده بزرگ از MongoDB (مانگو‌دی‌بی) با استفاده از IAsyncEnumerable، و همچنین لزوم اجرای دستورات یکسان با قوانین اعتبارسنجی (validation rules) متفاوت بر اساس منبع فراخوانی (API)، از جمله این نیازها بوده است. علاوه بر این، سهولت درک مفاهیم برای برنامه‌نویسان تازه‌کار و انطباق بیشتر با اصطلاحات CQS (سی‌کیو‌اس) نیز از اولویت‌ها به شمار می‌رفت. به دلیل عدم وجود ابزاری که بتواند تمامی این خواسته‌ها را برآورده کند، این توسعه‌دهنده اقدام به ساخت LiteBus (لایت‌باس) با تمرکز بر عملکرد و شفافیت اهداف معماری نموده است.


مشاهده مطلب اصلی