מה זה Event (ומה זה לא)

📚 מערכות Event-Driven - חלק 1 ארכיטקטורה מערכתית #Event-Driven#Events
תוכן עניינים

מה זה Event (ומה זה לא)

המילה Event נשמעת פשוטה: משהו קרה.

אבל במערכות תוכנה, זו אחת המילים הכי מבלבלות - כי היא מתארת רעיון מופשט, לא פעולה טכנית.

כדי להבין מערכות Event-driven, צריך קודם להבין למה בכלל קוראים למשהו “אירוע”.

Event הוא תיאור של שינוי, לא פעולה

Event אינו פעולה שהמערכת מבצעת, ואינו בקשה שצריך לטפל בה.

Event הוא תיאור של עובדה שהתרחשה: משהו השתנה במצב המערכת.

לדוגמה:

  • הזמנה נוצרה
  • תשלום הושלם
  • קובץ עודכן
  • חיישן חצה סף

המערכת לא “מבצעת” Event - היא מצהירה עליו.

מה Event לא אומר

Event לא אומר:

  • שמישהו כבר טיפל בו
  • שמישהו בכלל יטפל בו
  • שזה קרה עכשיו
  • שזה חשוב למישהו מסוים

הוא גם לא פקודה: לא “תעשה X”, אלא “X קרה”.

ההבדל הזה קריטי, כי הוא מפריד בין: ידיעה לבין תגובה.

Event לעומת בקשה

בקשה (Request) שואלת: “תעשה משהו בשבילי”.

Event אומר: “משהו כבר קרה, תעשה עם זה מה שתרצה”.

בקשה יוצרת תלות: מי שמבקש מצפה לתוצאה.

Event מנתק תלות: מי ששומע מחליט לבד אם אכפת לו.

Event בלי הקשר הוא רעש

לא כל שינוי ראוי להיות Event.

אם כל שינוי קטן מייצר Event:

  • המערכת מוצפת
  • קשה להבדיל בין עיקר לטפל
  • וה-Latency גדל בלי ערך אמיתי

Event טוב הוא:

  • משמעותי ברמה מערכתית
  • יציב מבחינה סמנטית
  • כזה שסביר שיותר מרכיב אחד ירצה לדעת עליו

Event הוא בחירה תכנונית, לא תוצר אוטומטי.

המשל

דמיינו לוח מודעות.

Event הוא פתק שאומר: “הדלת נסגרה”.

הוא לא אומר:

  • מי צריך לפתוח אותה
  • מתי
  • או אם בכלל צריך לפעול

כל אחד שקורא את הפתק - מחליט לבד אם זה רלוונטי עבורו.

השורה התחתונה

Event הוא לא “משהו שקרה בקוד”. הוא הצהרה על מציאות שהשתנתה.

מערכות Event-driven לא בנויות סביב פעולות - אלא סביב עובדות.

ברגע שמבינים את זה, אפשר להתחיל לדבר על איך עובדות זזות במערכת.

תגובות