PS-ARC-02
سند معماری فنی
اپلیکیشن باشگاه مشتریان · نسخهٔ ۱.۰
۱. نمای کلی معماری
معماری بر پایهٔ رویکرد API-first و تفکیک روشن لایهها طراحی شده است تا تیم موبایل و تیم بکاند بتوانند مستقل از هم پیش بروند و قرارداد میانشان از روز اول ثابت باشد.
- لایهٔ کلاینت: اپلیکیشن موبایل (اندروید و iOS) و پنل مدیریت تحت وب
- لایهٔ API: دروازهٔ واحد با احراز هویت متمرکز و محدودسازی نرخ درخواست
- لایهٔ دامنه: سرویس امتیاز، سرویس کمپین، سرویس اعلان
- لایهٔ داده: پایگاهداده رابطهای اصلی + حافظهٔ نهان برای موجودی امتیاز
۲. پشتهٔ فناوری و دلیل انتخاب
| لایه | فناوری | دلیل انتخاب |
|---|---|---|
| موبایل | React Native | یک تیم برای دو پلتفرم، با توجه به اندازهٔ تیم کارفرما |
| بکاند | Node.js + TypeScript | همزبانی با تیم فرانتاند، استخدام آسانتر در بازار ایران |
| پایگاهداده | PostgreSQL | تراکنشهای مالی امتیاز نیازمند تضمین ACID است |
| حافظهٔ نهان | Redis | موجودی امتیاز پرخوانش است و نباید هر بار از دیتابیس بیاید |
| استقرار | Docker روی سرور داخل کشور | الزام دسترسیپذیری از داخل ایران |
۳. تصمیمهای معماری (ADR)
هر تصمیم معماری با فرمت ADR ثبت میشود: زمینه، تصمیم، گزینههای رد شده و پیامدها. این کار باعث میشود تیم آینده بداند چرا یک انتخاب انجام شده و کدام مسیرها قبلاً بررسی و رد شدهاند.
۴. امنیت و مقیاسپذیری
- احراز هویت با توکن کوتاهعمر و توکن تازهسازی چرخشی
- رمزنگاری شمارهٔ موبایل در حالت سکون و ثبت لاگ دسترسی
- محدودسازی نرخ درخواست روی نقاط حساس مانند ثبتنام و اعمال کد تخفیف
- مسیر رشد: جداسازی سرویس کمپین بهعنوان اولین سرویس مستقل در صورت عبور از ۵۰۰ هزار کاربر فعال