IMAN_MEHNISYSTEM_ARCHITECT
[پروژه ها][بلاگ][ارتباط با من]
Neshateman.com cover
2020Web / Cloudمعمار ارشد فول‌استک

Neshateman.com

پلتفرم تجارت الکترونیک با سیستم مشارکت در فروش چندسطحی پله‌ای و موتور محاسبه اتمیک کمیسیون‌ها.

مشاهده لایو
Scene 01

چالش‌ها و موانع معماری

سیستم اصلی نیاز به یک موتور محاسبه کمیسیون مشارکت در فروش چندسطحی تو در تو ( recursive downline payouts) داشت. محاسبه در لحظه کمیسیون‌ها برای هزاران کاربر فعال به هنگام ثبت فاکتور، بدون ایجاد شرایط مسابقه (Race Conditions)، خواندن داده‌های کثیف (Dirty Reads) و شکست تراکنش‌ها، یک چالش معماری بسیار بزرگ بود. همچنین باید تضمین می‌شد که به‌روزرسانی بازگشتی کیف پول کاربران کاملاً اتمیک و مقاوم در برابر خطا باشد و هیچ فشاری به Event Loop اصلی وارد نکند.
Scene 02

راه‌حل‌های فنی و پیاده‌سازی

ما این مشکل را با پیاده‌سازی تراکنش‌های ACID در MongoDB در کنار مکانیزم قفل‌گذاری توزیع‌شده مبتنی بر Redis برای صف‌بندی نوشتن پرداخت‌های همزمان حل کردیم. به جای حل درخت ارجاعات به صورت همزمان در درخواست‌های HTTP، محاسبات بازگشتی را به یک صف پردازش پس‌زمینه با استفاده از BullMQ منتقل کردیم. همچنین یک پایپ‌لاین Aggregation بهینه‌سازی شده با $graphLookup طراحی کردیم تا سلسله‌مراتب بازاریاب‌ها را تنها در یک کوئری استخراج کند و رفت‌وآمد دیتابیس را تا ۹۰٪ کاهش دهد.
موتور محاسباتی تجمع داده‌های بازگشتی
SYSTEM_OVERRIDE // 01

موتور محاسباتی تجمع داده‌های بازگشتی

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

مدیریت تراکنش‌های امن و اتمیک (ACID)
SYSTEM_OVERRIDE // 02

مدیریت تراکنش‌های امن و اتمیک (ACID)

تضمین اجرای صد در صدی و همزمان تراکنش‌های مالی و واریزها به کیف پول کاربران برای جلوگیری از کسر شدن اشتباه موجودی‌ها.

Scene 04

تاثیرات تجاری و بهینه‌سازی

98/100
امتیاز عملکرد
10k+
بازاریاب فعال
Scene 05

نگاه عمیق به معماری و پروتکل‌های امنیتی

// لایه معماری سیستم

// 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.

استوری بورد
فریم 1
FRAME_001
REC 60FPS
فریم 2
FRAME_002
REC 60FPS

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

Next.js 16App RouterMongoDBRedisBullMQTypeScriptTailwind
Zouma Outlet
پروژه بعدی

05 / 04

Zouma Outlet

توسعه‌دهنده ارشد فول‌استک

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

مشاهده پروژه
پروژه قبلیEdareto
Iman.dev

Architecting scalable systems and crafting beautiful interfaces for the modern web.

© 2026 Iman Mehni.|Built with Next.js & MongoDB.