TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #515 245
چالش Data Sync 🔄💾

پیاده‌سازی همگام‌سازی دوطرفه‌ی داده بسیار پیچیده‌تر از چیزی بود که در ابتدا تصور می‌کردیم. دلیل اینکه نتوانستیم از راهکارهای موجودِ Change Data Capture (CDC) مانند Debezium استفاده کنیم این‌ها بود:

1️⃣ تبدیل‌های پیچیده:

بسیاری از جدول‌های legacy برای ساخت رکورد جدید نیازمند داده از چندین جدول در سیستم جدید بودند. این یک mapping ساده‌ی یک‌به‌یک —که ابزارهای CDC در آن عالی هستند— نبود. 🧩

2️⃣ اعمال Business Logic در فرآیند Sync:

فرآیند sync باید business rule‌های متعددی را در مرحله‌ی transformation اعمال می‌کرد. این فراتر از قابلیت‌های ابزارهای replication معمول بود. ⚙️

3️⃣ نیازمندی‌های دوطرفه (Bidirectional):

باید داده را در هر دو جهت همگام می‌کردیم، بدون آنکه دچار loop بی‌نهایت شویم. سیستم legacy تا زمانی که برخی کامپوننت‌ها مهاجرت نکرده بودند، همچنان source of truth باقی می‌ماند. 🔁❗️

ما یک راهکار custom با استفاده از RabbitMQ برای انتقال پیام ساختیم. این راهکار برای نیازهای ما مناسب بود؛ اما درس بزرگ این است:
پیش از ساخت هر راهکار سفارشی، ابزارهای موجود را به‌طور کامل ارزیابی کنید.
حتی اگر نتوانید آن‌ها را تمام‌وکمال استفاده کنید، از معماری‌ها و الگوهای آن‌ها چیزهای ارزشمندی خواهید آموخت. 🛠📘
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →