سازگاری داده ها Eventual Consistency چیست؟

یا می دانید سازگاری داده ها یا Eventual Consistency در معماری میکرو سرویس به چه صورت است؟
در معماری میکروسرویس ما سرویس های  خود را به صورت مستقل از هم طراحی می کنیم و این به این معناست که دیتابیس آنها را باید کاملا مستقل از هم طراحی کنیم.
فرض کنید می خواهیم یک پروژه فروشگاهی طراحی کنیم که یک سرویس برای محصولات و یک سرویس برای سبد خرید و سرویسی دیگر برای ثبت سفارش و چندین سرویس دیگر برای موارد مختلف مورد نیاز است.
هر کدام از این سرویس ها باید دیتابیس اختصاصی خود را داشته باشند و هیچکدام از میکروسرویس های دیگر حق تغییر دیتابیس سرویس دیگر را ندارند.
حال در پروژه های مونولیتیک اگر ما بخواهیم این فروشگاه را طراحی کنیم  تصور کنید که ما می خواهیم یک آیتم را به سبد خرید اضافه کنیم.
محصولی که ما می خواهیم به سبد خرید اضافه کنیم فقط آیدی آن محصول را نگه داری می کنیم و این برای ما کافی است و اگر به دیتای دیگری از محصول نیاز داشتیم می توانیم Relation بزنیم و بقیه دیتاهای آن را بدست بیاوریم
 اما در معماری میکروسرویس به این صورت نیست چون ما نمیتوانیم به دیتابیس میکروسرویس دیگر Relation بزنیم و آن دیتاها را بدست بیاوریم و ناچاریم دیتاهای مورد نیازخود را که در سرویس های دیگر هستند
در سرویس خود ذخیره کنیم.


برچسب: