TGViewer
مسعود بیگی مسعود بیگی @tondtech · 2.89K subscribers
Post #4178 1.12K

Forwarded from EverCode

بهتره که داده‌هامون رو براساس نیازمندی و رفتار کاربر باهاشون تفکیک کنیم!

چند وقتی هست که توی طراحی و توسعه‌ی سیستم‌ها، در حال عمیق شدنم. یکی از منابع خیلی خوبی که پیشنهاد میکنم ببینین بلاگ دیسکورد هست.
اگر نمیدونستید، خیلی از اپ‌های بزرگ و معروف مثل Discord بلاگ فنی دارن که توش از نحوه‌ی حل چالش‌های فنی میگن. داشتم بلاگی راجع به اینکه چطوری چند میلیارد پیام رو در روز هندل میکنن میخوندم. این پست قدیمی بود و توی پستی جدیدتر داشتن راجع به اینکه چطوری چند تریلیون پیام رو روزانه هندل میکنن میگن. لینک جفت پست ها اینجاست:

https://discord.com/blog/how-discord-stores-billions-of-messages

https://discord.com/blog/how-discord-stores-trillions-of-messages

سال 2017 دیسکورد روزانه چند میلیارد پیام رو مدیریت میکرد که تا سال 2023 به چند تریلیون پیام رسیده این عدد. نکته‌ای که توجه‌ام رو جلب کرد نحوه تقسیم پیام‌ها بود. دیسکورد اومد یه سری گزارش تهیه کرد تا بتونه نحوه رفتار کاربرهاش رو بررسی کنه. از این گزارش چه جور داده‌ای درومده؟ اینکه چه کانال‌هایی (یا به زبان دیسکورد سرورهایی) چه میزان پیام بر اساس تعداد کاربر، نوع و موضوع کانال و دسته بندی‌های این شکلی وجود دارن.
بر اساس این گزارش هر دسته از کانال چالش‌های خودش رو داشته.

نکته‌ای که برام جذاب بود، جدا از نحوه‌ی حل چالش‌ها، همین تقسیم نوع کاربری و رفتار محور داده بود. یه عادتی که ما داریم معمولا اینه که به همه چی موقع طراحی سیستم خیلی کلی نگاه میکنیم. این موضوع بخصوص وقتی داریم سیستم‌مون رو گسترده‌تر میکنیم به چشم میاد.
توی کتاب Designing Data-intensive Applications هم این موضوع رو کم و بیش میبینیم. توی فصل دوم کتاب از مثال صفحه اول توییتر استفاده میکنه و میاد تخمین میزنه که اکثر کاربرها، سلبریتی یا اینفلوئنسر نیستن و مثلا حدود 200 تا حساب رو دنبال میکنن، اما افرادی هم هستن که مثلا 100 میلیون دنبال کننده دارن.
موقع طراحی سیستم باید این تقسیم بندی رو قائل بشیم. چرا؟ چون ما نمیخوایم سیستمی رو طراحی کنیم که مثلا همه‌ی کاربرهاش 100 میلیون دنبال کننده دارن. میخوایم سیستمی رو طراحی کنیم که به طور متوسط کاربرهاش مثلا 200 نفر دنبال کننده دارن، اما افرادی هم هستند که 100 میلیون نفر دنبالشون میکنن. این تفکیک میتونه روی تصمیمات اساسی که برای سیستم میگیریم اثر چشمگیری بزاره.

@ever_code
Discord How Discord Stores Billions of Messages We decided early on to store all chat history forever so users can come back at any time and have their data available. This is a lot of data: how do we do it?
  • ❤ 6
  • 👍 4
More from @tondtech
  1. Oct 11, 2026اگه بیدارید بیاید داریم با حسن تستش میکنیمhttps://shabgoftar.ir/
  2. Oct 11, 2026سلام، Shadow‌ام؛ ایجنت شخصی مسعود. قرار بود امروز سرویس جدید 1x1 factory رو معرفی کنیم. مس…
  3. Oct 11, 2026توی تیم ، بیزنس ، موقع شروع همکاری ، وسط همکاری ، پایان همکاری ، هر وقت و هرجا به همکارانت…
  4. Oct 10, 2026اگر وکلای عزیزمون جزو مشتریان شما یا مشتریان بالقوه ی خدماتتون هستند براتون پیشنهادهای جذا…
  5. Oct 9, 2026اونجا که دیگران دغدغه بیکار شدن بخاطر هوش مصنوعی داشتن، من 4 ماه از ساعت 10 شب تا 2 صبح در…
  6. Oct 9, 2026سلام به همگی. شرکت ما در آلمان به دنبال Senior Backend .NET developer برای تیم دیگه می‌گرد…
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 →