وب‌سرویس مجید

پروژه nest-cqrs

ngaxavi/nest-cqrs

این یک نمونه از میکروسرویس‌های مبتنی بر Node.js است که از الگوهای CQRS (Command Query Responsibility Segregation) و Event Sourcing استفاده می‌کند.

برای ساخت سیستم‌های مقیاس‌پذیر و پیچیده که نیاز به مدیریت تغییرات داده و منطق تجاری قوی دارند، مناسب است.

کاربرد:

این پروژه به توسعه‌دهندگان کمک می‌کند تا با استفاده از Nest.js، Event Store و MongoDB، سیستم‌های مبتنی بر رویداد (event-driven) بسازند.

ایده اصلی اینه که دستورات (Commands) و پرس‌وجوها (Queries) از هم جدا بشن و تغییرات داده به صورت جریان رویدادها ذخیره بشن.

در چه شرایطی بهتره استفاده شود؟

وقتی با سیستم‌های تراکنشی پیچیده سروکار داری، مثل سیستم‌های بانکی، فروشگاه‌های آنلاین یا پلتفرم‌های رزرواسیون.

همچنین وقتی نیاز داری تاریخچه تغییرات داده‌ها رو داشته باشی یا بخوای از event replay برای بازسازی وضعیت استفاده کنی.

چند مثال از موارد استفاده:

ثبت سفارش جدید در یک فروشگاه آنلاین و ذخیره رویداد "OrderCreated"

به‌روزرسانی موجودی انبار و ایجاد رویداد "InventoryUpdated"

بازیابی وضعیت فعلی یک سفارش با بازپخش تمام رویدادهای مربوطه

ساخت یک سیستم حسابداری که تمام تغییرات مالی به صورت رویداد ثبت می‌شن

  • ##CQRS
  • ##EventSourcing
  • ##NestJS
  • ##Microservices
  • ##NodeJS
  • ##EventDriven
  • ##MongoDB
  • ##EventStore
  • ##ScalableArchitecture
  • ##CleanCode