یارپلاس را با میکروسرویس ساختم. می‌خواستم پرداخت، احراز هویت و محتوا جدا باشند. بخشی از انتخابم هم برای یاد گرفتن بود. امروز احتمالاً با یک مونولیت ماژولار شروع می‌کردم.

دلیل جداسازی

بخش محتوا بیشتر تغییر می‌کرد، اما پرداخت به تغییرهای محدودتر و تاریخچه قابل پیگیری نیاز داشت. جدا کردن این بخش‌ها کمک می‌کرد مسئولیت هرکدام روشن بماند. می‌خواستم اختلال در بخش کشف محتوا هم تا جای ممکن روی پرداخت اثر نگذارد.

این نیازها به جداسازی منطق مربوط بودند؛ برای همه آن‌ها الزاماً به سرویس جدا نیاز نداشتم.

هزینه نگهداری

اگر دوباره شروع می‌کردم

یک برنامه قابل استقرار می‌ساختم، با ماژول‌های جدا برای پرداخت، حساب کاربر و محتوا. هر ماژول رابط مشخصی داشت و بقیه بخش‌ها مستقیم به داده‌های داخلی آن دسترسی نداشتند.

سرویس را وقتی جدا می‌کردم که دلیل مشخصی پیدا شود: مثلاً نیاز به استقرار مستقل یا بار پردازشی متفاوت. برای مرحله اول محصول، کمتر بودن کارهای نگهداری برایم مهم‌تر بود.