سلام،
ما یک پروژه ربات مبتنی بر معماری میکروسرویس (Node.js) داریم. این سیستم شامل یک بکاند اصلی (NestJS) و یک سرویس آپلودر مجزا (Express.js) است که کل سیستم با Docker راهاندازی میشود.
مشکل فعلی:
بکاند اصلی ربات (NestJS) در حال حاضر مسئولیت دانلود فایلهای سنگین از لینکهای ارسالی کاربران را بر عهده دارد. این موضوع باعث ایجاد گلوگاه (bottleneck) و فشار پردازشی غیرضروری روی سرویس اصلی شده است.
هدف پروژه:
ما به دنبال یک توسعهدهنده ارشد Node.js هستیم تا این فرآیند را بهطور کامل بازآفرینی (Refactor) کند. مسئولیت دانلود فایل باید کاملاً به میکروسرویس آپلودر (Express.js) منتقل شود.
فرآیند مورد انتظار:
سرویس آپلودر باید وظیفه را از بکاند دریافت کند، فایل را مستقیماً از URL مبدأ دانلود کرده و همزمان به سرور FTP آپلود (Stream) کند. در نهایت، نتیجه (موفقیت یا شکست) را با یک callback به بکاند اصلی بازگرداند.
توضیحات تکمیلی در مورد وضعیت پروژه (مهم):
برای شفافسازی و ارائه قیمت دقیقتر، لطفاً به نکات زیر توجه کنید:
این پروژه «ساخت از صفر» نیست، بلکه یک تسک «بازنویسی (Refactoring) و تکمیل» یک فیچر موجود است.
معماری میکروسرویس (NestJS + Express.js) و ارتباط بین آنها (از طریق API و Callback) در حال حاضر پیادهسازی شده و کل پروژه با Docker در حال اجرا است.
وظیفه شما، انتقال کامل منطق دانلود از بکاند اصلی (NestJS) به میکروسرویس آپلودر، و سپس تکمیل، رفع باگ و پایدارسازی فرآیند آپلود مستقیم به FTP (مسیر uploadTarget=ftp) در سرویس Express.js است.
شما روی یک کدبیس موجود و ساختاریافته کار خواهید کرد و نیازی به راهاندازی زیرساخت ندارید.
مهارتهای الزامی:
تسلط کامل بر Node.js و TypeScript.
تجربه تخصصی با Express.js (برای کار روی میکروسرویس آپلودر).
تجربه کار با NestJS (برای اصلاح و هماهنگی بکاند اصلی).
تسلط بر معماری میکروسرویس و الگوهای ارتباطی (مانند REST API و Callback).
تجربه کار با Docker و Docker Compose (الزامی).
تجربه عملیاتی با Stream-ها در Node.js (برای بهینهسازی دانلود و آپلود).
آشنایی با پروتکل FTP و کتابخانههای مرتبط.
آشنایی با Redis (به عنوان مزیت).
ما به دنبال همکاری با یک فرد متخصص و باتجربه برای این تسک مشخص هستیم.
جزئیات کامل پروژه، مستندات معماری و دسترسیها پس از بررسی پیشنهاد و توافق اولیه ارائه خواهد شد.
لطفاً در پیشنهاد خود، حتماً به تجربههای مشابه خود در زمینه بهینهسازی فرآیندهای دانلود/آپلود یا کار با میکروسرویسها اشاره کنید.