প্রকল্প সম্পর্কে

@node-ts/bus হলো একটি TypeScript লাইব্রেরি, যা স্থিতিস্থাপক, মেসেজ-ভিত্তিক অ্যাপ্লিকেশন তৈরির প্রক্রিয়া সহজ করার জন্য ডিজাইন করা হয়েছে। এটি অন্তর্নিহিত বাস ট্রান্সপোর্টের প্রযুক্তিগত বিবরণ বিমূর্ত করে, যাতে ডেভেলপাররা ন্যূনতম বয়লারপ্লেট দিয়ে শিথিলভাবে সংযুক্ত সিস্টেম তৈরি করতে মনোযোগ দিতে পারেন। লাইব্রেরিটি ডেভেলপারদের মেসেজ এবং মেসেজ হ্যান্ডলার সংজ্ঞায়িত করার সুযোগ দেয়, একই সাথে মেসেজ ট্রান্সপোর্ট, সাবস্ক্রিপশন এবং রিট্রাই স্বয়ংক্রিয়ভাবে পরিচালনা করে। ব্যর্থতার ক্ষেত্রে, মেসেজগুলো রিট্রাইয়ের জন্য কিউতে ফেরত পাঠানো হয়, যা অ্যাপ্লিকেশনের স্থিতিস্থাপকতা বাড়ায়। এটি দীর্ঘমেয়াদী প্রক্রিয়ায় একাধিক মেসেজ এবং হ্যান্ডলার সমন্বয়ের জন্য মেসেজ ওয়ার্কফ্লো (সাগাস) প্রদান করে, যা অ্যাপ্লিকেশনকে আরও শক্তিশালী, স্ব-নিরাময়কারী এবং ডেটা ক্ষতি বা বিকৃতির বিরুদ্ধে প্রতিরোধী করে তোলে। Node.js 24 বা তার পরবর্তী সংস্করণ প্রয়োজন। ## কম্পোনেন্ট প্রকল্পটি একটি মনোরেপো, যেখানে কয়েকটি প্যাকেজ রয়েছে: - **@node-ts/bus-core**: মেসেজ পাঠানো ও গ্রহণ এবং ওয়ার্কফ্লো পরিচালনার জন্য মূল বাস লাইব্রেরি - **@node-ts/bus-messages**: নিজের মেসেজ, ইভেন্ট এবং কমান্ড সংজ্ঞায়িত করার জন্য মেসেজ টাইপ ডেফিনিশন - **@node-ts/bus-class-serializer**: JSON সিরিয়ালাইজার, যা ক্লাস ইনস্ট্যান্সে রূপান্তর করে - **@node-ts/bus-postgres**: Postgres পারসিস্টেন্স অ্যাডাপ্টার - **@node-ts/bus-mongodb**: MongoDB পারসিস্টেন্স অ্যাডাপ্টার - **@node-ts/bus-rabbitmq**: RabbitMQ ট্রান্সপোর্ট অ্যাডাপ্টার - **@node-ts/bus-sqs**: Amazon SQS ট্রান্সপোর্ট অ্যাডাপ্টার ## ডেভেলপমেন্ট কন্ট্রিবিউটরদের জন্য, রিপোজিটরিটি মনোরেপো সাপোর্ট এবং ওয়ার্কস্পেসের জন্য `pnpm` ব্যবহার করে। প্রধান স্ক্রিপ্টগুলোর মধ্যে রয়েছে: - `bootstrap`: সব প্যাকেজে ডিপেন্ডেন্সি ইনস্টল করে এবং রুটে হোস্ট করে - `build`: সব প্যাকেজ বিল্ড করে - `build:watch`: সব প্যাকেজ বিল্ড করে এবং ইনক্রিমেন্টাল বিল্ডের মাধ্যমে পরিবর্তনের জন্য নজর রাখে - `clean`: সব dist এবং node_modules ফোল্ডার মুছে ফেলে - `lint`: রিপোজিটরিতে ESLint (typescript-eslint, type-aware) চালায় - `format`: prettier দিয়ে ফরম্যাট করে - `test`: ইউনিট এবং ইন্টিগ্রেশন টেস্ট চালায় - `test:watch`: ওয়াচ মোডে টেস্ট চালায় ডকুমেন্টেশন পাওয়া যায় [https://bus.node-ts.com](https://bus.node-ts.com)-এ, এবং প্রশ্ন GitHub Discussions-এ পাঠানো যেতে পারে।