TGViewer
کدهالیک | codehalic کدهالیک | codehalic @codehalics · 4.15K subscribers
Post #734 631
کدهالیک | codehalic بچه‌ها، شاید بپرسید وقتی دو تا درخواست تو یک نانوثانیه به دیتابیس می‌رسن، دیتابیس چطور جادو می‌کنه که همزمانی (Concurrency) پیش نمیاد؟ راز دیتابیس در دو کلمه خلاصه می‌شه: B-Tree Index و Latches وقتی ما یک ستون رو یونیک می‌کنیم، دیتابیس تو پس‌زمینه یک ساختار…
حالا هر چی گفتم رو به عنوان خط آخر دفاعی توی کدتون باید در نظر بگیرید یعنی بدترین اتفاق که میوفته آخرین خط ما میشه دیتابیس چرا ؟ چون دیتابیس با اون قفل‌های سخت‌افزاریش عالیه، ولی مثل گاوصندوق ته بانکه؛ درگیر کردن دیتابیس گرونه و نباید بذاریم هر درخواست تکراری اصلاً پاش به اونجا برسه! تو سیستم‌های پرترافیک، ما سپرها رو میاریم جلوتر. راحت‌ترین راهکار ردیس (Redis) و دستور SETNX هست که مثل یه بادیگارد فرز دم در، تو همون رم (RAM) و در کسری از ثانیه قفل رو می‌گیره و اجازه ورود همزمان نمیده (Distributed Lock). راهکار خفن‌تر، معماری‌های مبتنی بر ایونت مثل کافکا یا ربیت‌ام‌کیو هست؛ وقتی کلید پرداخت رو به عنوان Message Key بدیم، کافکا تمام درخواست‌های تکراری رو می‌فرسته تو یک پارتیشن و به صورت کاملاً ترتیبی پردازش می‌کنه؛ اینطوری کلاً صورت‌مسئله‌ی همزمانی از ریشه پاک می‌شه! یه سولوشن جذابِ مهندسی دیگه هم اکتور مدل (Actor Model) هست که هر تراکنش رو مثل یک کارمند با یه «صندوق پستی» اختصاصی می‌بینه که تو هر لحظه فقط و فقط یک نامه (درخواست) رو از صندوقش برمی‌داره و باز می‌کنه. در واقع تو یه معماری تمیز، ردیس سپر اوله، کافکا ترافیک رو تو صف‌های تک‌نفره منظم می‌کنه، و دیتابیس هم با اون Unique Constraint به عنوان خط آخر دفاعی، خیالمون رو کاملاً راحت می‌کنه.

@codehalics | کدهالیک
  • ❤ 1
More from @codehalics
  1. Oct 7, 2026این نکته رو هم اضافه کنم که این مورد داره ۲ اصل از اصول SOLID رو رعایت میکنه ! اول DIP (مع…
  2. Oct 7, 2026توی NestJS اینکه چند تا پوشه مثل Orders و Payments بسازی معنیش کد ماژولار نیست. وقتی همه چ…
  3. Oct 7, 2026توی نسخه جدید 16.4 نکس‌جی‌اس، مهم‌ترین خبر اینه که مدل جدید Cache Components بالاخره کامل…
  4. Oct 5, 2026یه اتفاق جالب افتاده: یه برنامه‌‌نویس موقع ساخت پروژه دات‌نت با Claude متوجه شده هوش مصنوع…
  5. Oct 5, 2026دوره جامع معماری نرم‌افزار منتشر شد. در این آموزش ۴ ساعته و فشرده، مباحث Clean Architectur…
  6. Oct 4, 2026این پروژه خیلی جالب بود یه نفر نرم افزار مدیریت انبار رو از یه کار خشک و تکراری به یه بازی…
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 →