
Neshateman.com
پلتفرم تجارت الکترونیک با سیستم مشارکت در فروش چندسطحی پلهای و موتور محاسبه اتمیک کمیسیونها.
چالشها و موانع معماری
سیستم اصلی نیاز به یک موتور محاسبه کمیسیون مشارکت در فروش چندسطحی تو در تو ( recursive downline payouts) داشت. محاسبه در لحظه کمیسیونها برای هزاران کاربر فعال به هنگام ثبت فاکتور، بدون ایجاد شرایط مسابقه (Race Conditions)، خواندن دادههای کثیف (Dirty Reads) و شکست تراکنشها، یک چالش معماری بسیار بزرگ بود. همچنین باید تضمین میشد که بهروزرسانی بازگشتی کیف پول کاربران کاملاً اتمیک و مقاوم در برابر خطا باشد و هیچ فشاری به Event Loop اصلی وارد نکند.
راهحلهای فنی و پیادهسازی
ما این مشکل را با پیادهسازی تراکنشهای ACID در MongoDB در کنار مکانیزم قفلگذاری توزیعشده مبتنی بر Redis برای صفبندی نوشتن پرداختهای همزمان حل کردیم. به جای حل درخت ارجاعات به صورت همزمان در درخواستهای HTTP، محاسبات بازگشتی را به یک صف پردازش پسزمینه با استفاده از BullMQ منتقل کردیم. همچنین یک پایپلاین Aggregation بهینهسازی شده با $graphLookup طراحی کردیم تا سلسلهمراتب بازاریابها را تنها در یک کوئری استخراج کند و رفتوآمد دیتابیس را تا ۹۰٪ کاهش دهد.

موتور محاسباتی تجمع دادههای بازگشتی
استخراج لایههای سلسلهمراتبی تو در توی ارجاعات (Downlines) تنها با یک درخواست به دیتابیس با استفاده از پایپلاینهای گراف در مانگوس.

مدیریت تراکنشهای امن و اتمیک (ACID)
تضمین اجرای صد در صدی و همزمان تراکنشهای مالی و واریزها به کیف پول کاربران برای جلوگیری از کسر شدن اشتباه موجودیها.
تاثیرات تجاری و بهینهسازی
نگاه عمیق به معماری و پروتکلهای امنیتی
// لایه معماری سیستم
// neshateman-payout.service.ts import { Injectable } from "@nestjs/common"; import { Connection } from "mongoose"; @Injectable() export class PayoutEngine { constructor(private readonly connection: Connection) {} async distributeCommissions(orderId: string, affiliateId: string, totalAmount: number): Promise<void> { const session = await this.connection.startSession(); try { session.startTransaction(); // 1. Recursive Graph Lookup to fetch ancestors (Max 5 tiers) const hierarchy = await this.connection.db.collection("users").aggregate([ { $match: { _id: affiliateId } }, { $graphLookup: { from: "users", startWith: "$referrerId", connectFromField: "referrerId", connectToField: "_id", as: "ancestors", maxDepth: 5 } } ], { session }).toArray(); // 2. Process atomic database writes for wallet balances const bulkOps = hierarchy[0]?.ancestors.map((ancestor: any, index: number) => ({ updateOne: { filter: { _id: ancestor._id }, update: { $inc: { walletBalance: totalAmount * (0.05 / (index + 1)) } } } })) || []; if (bulkOps.length > 0) { await this.connection.db.collection("users").bulkWrite(bulkOps, { session }); } await session.commitTransaction(); } catch (error) { await session.abortTransaction(); throw error; } finally { session.endSession(); } } }
// پروتکلهای امنیتی OWASP
### OWASP Top 10 Mitigation * **Broken Object Level Authorization (A01:2021):** Implemented strict authorization checks ensuring users can only read/write their own payout records by validating tokens against session stores. * **Injection (A03:2021):** Sanitized Mongoose queries to prevent NoSQL injection. * **Security Misconfiguration (A05:2021):** Configured strict CORS policies and enabled HTTP Strict Transport Security (HSTS). * **Concurrency Locks:** Used Redis-based Distributed Locks (Redlock) to prevent Double-Spending and Race Conditions during rapid wallet withdrawals.


تکنولوژیهای کلیدی هسته

05 / 04
Zouma Outlet
توسعهدهنده ارشد فولاستک
پلتفرم فروشگاهی کامل برای یکی از بزرگترین خردهفروشیهای کفش ایران — migration از ووکامرس به استک اختصاصی Next.js + Django با ۹۰٪ بهبود سرعت. بیش از ۱۵,۷۰۰ محصول فعال، ۸,۷۰۰+ کاربر ثبتشده و ۲۴.۴ میلیارد تومان درآمد در ۶ ماه. سیستم فروش حضوری PWA که کارمندان فروشگاه روی تبلت بهصورت روزانه باهاش کار میکنند.