Event Sourcingچیست؟
تهیه منابع یا Event Sourcing یک رویکرد متفاوت برای ذخیره داده ها است. به جای ذخیره وضعیت فعلی، در عوض رویدادها را ذخیره کند. رویدادها نمایانگر انتقال حالت چیزهایی است که در سیستم رخ داده است.
تهیه منابع یک راه عالی برای به روزرسانی اتمی حالت و انتشار رویدادها است.
تهیه منابع یک روش جایگزین برای ادامه داده ها است.
الگوی تهیه منابع، رویکردی را برای انجام عملیات بر روی دادههایی که توسط دنبالهای از رویدادها هدایت می شوند، تعریف می کند که هر یک از آنها در یک مخزن فقط ضمیمه ثبت می شود.
الگوی منابع رویداد شامل ارسال جریان مداوم پیام ها به یک هدف ذخیره معتبر است، هر پیام یک رویداد در سیستم را توصیف می کند.
کجا استفاده میشود؟
· وقتی از رویدادها استفاده می کنید.
· هنگامی که می خواهید رویدادهایی را که اتفاق می افتد ضبط کنید ، آنها را دوباره پخش کنید تا وضعیت یک سیستم را بازیابی کنید ، تغییرات را به عقب برگردانید ، یا تاریخچه و ثبت حسابرسی را حفظ کنید.
· هنگامی که به حداقل رساندن یا به طور کامل از بروزرسانی های متناقض به داده ها بسیار مهم است.
· هنگامی که می خواهید قصد ، هدف یا عقل را در داده ها ضبط کنید.
در چی شرایطی مفید نیست؟
· دامنه های کوچک یا ساده.
· سیستم هایی که فقط در مورد به روزرسانی های متناقض به داده های اساسی وجود دارد.
· سیستمهایی که مسیرهای حسابرسی ، تاریخ و قابلیت های لازم برای عقب نشینی و بازپرداخت اقدامات لازم نیست.
· سیستمهایی که در آن به روزرسانی در زمان واقعی به نماهای داده ها مورد نیاز است.
مزایا:
· عالی برای ایمنی ناکامی.
· بسیار انعطاف پذیر.
· عالی برای گزارش داده های زمان واقعی.
· گسترش آینده ساده است.
منابع:
· https://martinfowler.com/eaaDev/EventSourcing.html
· https://www.redhat.com/architect
· https://www.eventstore.com/blog/what-is-event-sourcing
· https://www.sitepen.com/blog/architecture-spotlight-event-sourcing