Seniorسختی 4 از ۵· در 55٪ مصاحبههای این حوزه پرسیده شده
آیا CQRS همیشه به معنای دو دیتابیس جدا برای خواندن و نوشتن است؟
☆نشان کردنپاسخ کوتاه
خیر؛ این یک باور غلط رایج است. CQRS در سطح پایه فقط یعنی مسیر کد Command و Query از هم جدا باشد؛ دیتابیس جدا (همراه Event Sourcing) یک گزینهٔ پیشرفتهٔ اختیاری برای سناریوهای بسیار مقیاسپذیر است.
پاسخ کامل
اکثر پروژههای واقعی از "CQRS سبک" استفاده میکنند: یک دیتابیس مشترک، اما Command از طریق Domain Entity/Repository و Query مستقیم با Dapper/SQL. فقط سیستمهای با بار خواندن/نوشتن بسیار نامتقارن (مثل شبکههای اجتماعی بزرگ) به دیتابیس/مدل جدا برای Read نیاز پیدا میکنند.
نکته مهم
در مصاحبه، تفکیک "CQRS سبک" از "CQRS کامل با Event Sourcing" نشاندهندهٔ درک عمیقتر است.
اشتباه رایج
❌ رد کردن CQRS بهعنوان «بیشازحد پیچیده» بدون دانستن نسخهٔ سبک آن.
