CodeShot
Seniorسختی 3 از ۵· در 62٪ مصاحبه‌های این حوزه پرسیده شده

چرا هر میکروسرویس باید دیتابیس مستقل داشته باشد؟

☆نشان کردن

پاسخ کوتاه

برای حفظ استقلال واقعی سرویس‌ها؛ اگر چند سرویس یک دیتابیس مشترک را Join کنند، تغییر Schema یک سرویس می‌تواند بقیه را بشکند و استقرار مستقل عملاً غیرممکن می‌شود.

پاسخ کامل

دیتابیس مشترک، مرز میکروسرویس را نقض می‌کند و آن را به یک "Monolith توزیع‌شده" با تمام معایب هر دو الگو (پیچیدگی شبکه + وابستگی محکم دیتابیس) تبدیل می‌کند.

نکته مهم

ارتباط بین دادهٔ سرویس‌ها باید از طریق API یا رویداد (Event) انجام شود، نه Join مستقیم دیتابیس.

اشتباه رایج

❌ اجازه دادن به دو میکروسرویس برای Join مستقیم روی جداول یکدیگر «برای راحتی».