نمای کلی سیستم کش
مقدمه
سیستم کش Planet یک راهحل کشگذاری رویداد محور (Event-Driven) است که برای بهروزرسانی خودکار دادههای کش شده بر اساس رویدادهای کسبوکار طراحی شده است. این سیستم از الگوی معماری تمیز (Clean Architecture) با جداسازی دقیق دغدغهها پیروی میکند و الگوی استراتژی (Strategy Pattern) را برای حالتهای مختلف پردازش پیادهسازی میکند.
این سیستم چالشهای رایج کشگذاری را با موارد زیر حل میکند:
- بهروزرسانی خودکار کش هنگام تغییر دادههای مرتبط
- حفظ سازگاری دادهها در سراسر اپلیکیشن
- ارائه دسترسی ایمن نوع (Type-Safe) به دادههای کش شده
- پشتیبانی از پردازش همزمان (Synchronous) و ناهمزمان (Asynchronous)
- محافظت از دادههای کش در برابر دستکاری مستقیم
ویژگیهای کلیدی
- معماری رویداد محور: کش به طور خودکار در پاسخ به رویدادهای کسبوکار بهروزرسانی میشود
- ایمنی نوع: تایپ قوی در سراسر سیستم با اعتبارسنجی مناسب
- محافظت فیلد: از دستکاری مستقیم دادههای کش جلوگیری میکند
- تبدیل داده (Data Casting): اطمینان از ذخیره و بازیابی دادهها با نوعهای صحیح
- پردازش همزمان/ناهمزمان: حالتهای پردازش انعطافپذیر برای نیازهای عملکردی مختلف
- معماری تمیز: جداسازی دقیق دغدغهها با رابطهای تعریف شده
- مدیریت خطای قوی: مدیریت جامع خطا و لاگگیری
اجزای اصلی
رابطها و قراردادها (Interfaces)
- CacheableModel: رابطی که مدلها باید برای شرکت در کشگذاری پیادهسازی کنند
- BusinessEvent: رابط برای رویدادهایی که بهروزرسانی کش را راهاندازی میکنند
- CacheHandler: رابط برای تولیدکنندههای داده کش
- CacheInitializerInterface: رابط برای مقداردهیکنندههای داده کش
DTO ها و مجموعهها (Collections)
- CacheConfigDTO: پیکربندی برای هر کلید کش با اعتبارسنجی
- CacheConfigCollection: مجموعه تایپ شده از پیکربندیهای کش
- CacheEventDTO: داده رویداد ارسال شده به کنترلکنندههای کش همراه با فراداده (Metadata)
- CacheHandlerResult: نتیجه کش واحد با شناسه موجودیت و داده
- CacheHandlerResultCollection: مجموعه تایپ شده از نتایج کنترلکننده کش
سرویسهای اصلی
- CacheManager: هماهنگکننده اصلی که الگوی استراتژی را پیادهسازی میکند
- CacheEventSubscriber: شنونده رویداد با مدیریت خطای قوی
- ModelDiscoveryService: کشف مدل کارآمد با کشگذاری
- CacheStorageService: عملیات پایگاه داده با ایمنی تراکنش (Transaction)
- CacheCastingService: مدیریت تبدیل نوع برای دادههای کش
نمودار معماری
جریان رویداد
-
مرحله کشف (یکبار):
- سیستم تمام مدلهای پیادهکننده
CacheableModelرا کشف میکند - پیکربندیهای کش را جمعآوری میکند
- نگاشت رویداد به مدل را میسازد
- نگاشت را برای عملکرد کش میکند
- سیستم تمام مدلهای پیادهکننده
-
پردازش رویداد:
CacheEventSubscriberبهBusinessEventها گوش میدهد- رویداد را با مدلهای مرتبط تطبیق میدهد
CacheEventDTOرا از داده رویداد ایجاد میکند- کنترلکنندههای کش مناسب را فراخوانی میکند
- نتایج را پردازش میکند (همزمان/ناهمزمان)
-
اجرای کنترلکننده کش:
CacheEventDTOرا دریافت میکند- منطق کسبوکار را پردازش میکند
CacheHandlerResultCollectionبرمیگرداند- شامل شناسههای موجودیت و دادههای کش مربوطه
-
ذخیرهسازی:
- ستون JSON
cacheمدل را بهروزرسانی میکند - حالتهای همزمان/ناهمزمان را مدیریت میکند
- یکپارچگی دادهها را حفظ میکند
- ستون JSON
مراحل بعدی
بخشهای زیر را برای یادگیری بیشتر درباره سیستم کش بررسی کنید:
- راهنمای پیادهسازی - نحوه پیادهسازی سیستم کش در مدلهای شما
- محافظت فیلد - نحوه محافظت سیستم از دادههای کش در برابر دستکاری مستقیم
- تبدیل داده - ویژگیهای تبدیل نوع برای دادههای کش
- استانداردهای مقداردهی - استانداردها برای مقداردهیکنندههای کش
- بهترین شیوهها - الگوها و رویکردهای توصیه شده
- عیبیابی - مسائل رایج و راهحلها