توسعه جنگو · ۱۲ مهر ۱۴۰۵ · ۱۰ دقیقه مطالعه · نویسنده: تیم تاریشا
معماری درست یک فروشگاه اینترنتی مقیاسپذیر
فروشگاهی که امروز با صد محصول خوب کار میکند، اگر معماریاش درست نباشد با ده هزار محصول و چند تأمینکننده از نفس میافتد. در این مقاله اصول معماری فروشگاه اینترنتی مقیاسپذیر را با تکیه بر تجربه ساخت فروشگاههای واقعی مرور میکنیم.
جداسازی دامنهها
کاتالوگ، سبد خرید، سفارش، پرداخت، ارسال و تأمینکننده، هرکدام دامنهای جدا با قوانین خودشاناند. وقتی این مرزها از اول روشن باشند ــ مثلاً در قالب اپهای مستقل جنگو ــ تغییر در یک بخش، بقیه را نمیشکند و توسعه موازی ممکن میشود.
مدیریت موجودی، قلب تپنده فروشگاه
موجودی نباید یک عدد ساده روی محصول باشد؛ رزرو هنگام ثبت سفارش، آزادسازی در صورت لغو و ثبت رویداد برای هر تغییر، حداقلهایی است که از فروش کالای ناموجود جلوگیری میکند. در فروشگاههای چندتأمینکننده، موجودی و قیمت هر عرضهکننده جداگانه نگهداری میشود.
طراحی دیتابیس برای رشد
ایندکسهای درست روی فیلدهای جستوجو و فیلتر، پرهیز از کوئریهای N+1 و طراحی اسکیمایی که گزارشگیری را ممکن کند، مرز فروشگاهِ «کار میکند» و فروشگاهِ «رشد میکند» است. گزارش فروش و موجودی باید از خود دیتابیس قابل استخراج باشد، نه با پردازش دستی.
درسهایی از یک پروژه واقعی
در ساخت فروشگاه اینترنتی کتاب MyBooklet، معماری تکبرنامهای ماژولار (Modular Monolith) با ۱۵ اپ دامنهمحور انتخاب شد: سادهتر از میکروسرویس برای نگهداری، اما با مرزهایی که اجازه میدهد هر بخش مستقل توسعه پیدا کند؛ پنل تأمینکننده، کیف پول و قیمتگذاری پویا روی همین معماری سوار شدند.
جمعبندی
مقیاسپذیری از انتخاب فناوری شروع نمیشود؛ از مرزبندی درست دامنهها و انضباط داده شروع میشود. اگر این دو را از روز اول جدی بگیرید، رشد فروشگاه به بازنویسی ختم نمیشود.
دیدگاهها (۰)
هنوز دیدگاهی برای این مقاله ثبت نشده است؛ اولین نفر باشید.