تفکیک مسئولیت فرمان و پرس و جو با منبع رویداد (CQRS+ES) یک الگوی معماری است که با استفاده از Event Sourcing مسئولیت پردازش دستورات (عملیات نوشتن) را از مسئولیت پردازش پرس و جوها (عملیات خواندن) جدا می کند.
در CQRS+ES، عملیات نوشتن توسط مدل Command انجام می شود که دستورات را از کلاینت ها دریافت می کند و آنها را به رویداد تبدیل می کند. رویدادها سپس در یک فروشگاه ضمیمه ای به نام فروشگاه رویداد ذخیره می شوند. فروشگاه رویداد سیستم رکورد است، به این معنی که تمام تغییرات در وضعیت سیستم به عنوان یک توالی از رویدادها ثبت می شود.
از سوی دیگر، عملیات خواندن توسط مدل Query انجام می شود که داده ها را از Event Store می خواند و مدل های خواندنی تولید می کند. این مدلهای خواندنی برای پرس و جوهای خاص بهینهسازی شدهاند و میتوانند برای خواندن سریعتر ذخیره شوند.
جداسازی مسئولیتهای فرمان و پرس و جو امکان مقیاسپذیری و بهینهسازی عملکرد را فراهم میکند. مدل Command را می توان برای عملیات سنگین نوشتن بهینه کرد، در حالی که مدل Query را می توان برای عملیات خواندنی بهینه کرد.
به طور کلی، CQRS+ES راهی برای پیادهسازی یک سیستم بسیار مقیاسپذیر، مقاوم در برابر خطا و رویداد محور ارائه میکند که به راحتی میتواند در طول زمان تکامل یابد.
تاریخ انتشار: