Event Streaming

Event Streaming رویکردی است که در آن نرم‌افزار داده Event را از یک Application به Application دیگر می‌فرستد تا به‌طور مستمر اعلام کند چه کاری انجام می‌دهد. تصور کنید سرویسی هر کاری که انجام می‌دهد برای سایر Serviceها Broadcast کند. هر فعالیتی که یک Service انجام می‌دهد Event نامیده می‌شود؛ از همین رو Event Streaming شکل می‌گیرد. برای مثال، NASDAQ هر ثانیه به‌روزرسانی قیمت سهام و کالاها را دریافت می‌کند. اگر Applicationی داشته باشید که مجموعه خاصی از سهام را پایش کند، می‌خواهید این اطلاعات را تقریباً Real-Time دریافت کنید. Yahoo! Finance یک API ارائه می‌دهد که از NASDAQ داده می‌گیرد و اطلاعات (یا Eventها) را از Application خود به هر Applicationی که مشترک باشد می‌فرستد (Stream می‌کند). داده ارسال‌شده و تغییرهای آن (قیمت سهام) Event هستند و فرایند رساندن آن‌ها به Application Event Streaming است.

مسئله‌ای که حل می‌کند

در گذشته، Yahoo! Finance از درخواست‌های TCP منفرد استفاده می‌کرد. این کار بسیار ناکارآمد بود، زیرا برای هر Event باید یک Connection ایجاد می‌شد. هرچه داده ماهیتی Real-Time‌تری پیدا کند، Scale چنین راهکاری ناکارآمدتر می‌شود. باز کردن یک Connection و اجازه دادن به جریان Eventها گزینه ایده‌آل برای جمع‌آوری Real-Time است. حجم داده‌های تولیدشده به‌صورت نمایی در حال رشد است و وضعیت داده دائماً در حال تغییر است. توسعه‌دهندگان و کاربران باید بتوانند آن داده را تقریباً Real-Time ببینند.

چگونه کمک می‌کند

Event Streaming اجازه می‌دهد تغییرهای داده از منبع به گیرنده منتقل شود. به‌جای این‌که Serviceها برای دریافت اطلاعات درخواست ارسال کنند، Service به‌طور مداوم تمام Eventها (یا فعالیت‌هایش) را Stream می‌کند. این Service نگران این نیست که با اطلاعات چه اتفاقی می‌افتد؛ فقط کاری را که باید انجام دهد انجام می‌دهد و آن را Broadcast می‌کند، بنابراین کاملاً مستقل از سایر Serviceها باقی می‌ماند.


آخرین ویرایش September 26, 2025: [fa] Add Persian to the list of localized languages (6511f5f)