מה זה Broker - ולמה הוא אף פעם לא "רק צינור"

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

מה זה Broker - ולמה הוא אף פעם לא “רק צינור”

אחרי שהבנו מהו Event, ואיך הוא שונה מ-Polling, צריך לעצור על הרכיב שבדרך כלל מסתתר באמצע - אבל הוא זה שמחליט איך המערכת באמת מתנהגת.

זה ה-Broker.

מה זה בעצם Broker

Broker הוא רכיב תיווך: הוא מקבל אירועים ממי שיצר אותם, ומעביר אותם למי שאמור לקבל אותם.

לכאורה - תפקיד פשוט: לקבל → להעביר.

בפועל - זהו אחד הרכיבים הכי בעלי השפעה במערכת Event-driven.

למה בכלל צריך Broker

בלי Broker, יוצר האירוע צריך לדעת:

  • מי הצרכנים
  • איך להגיע אליהם
  • מתי הם זמינים

זה יוצר תלות ישירה.

Broker נועד לשבור את התלות הזו:

  • היוצר לא יודע מי יגיב
  • הצרכן לא יודע מי יצר
  • וכל אחד מהם מתקדם בקצב שלו

זה היתרון הגדול של Event-driven - אבל הוא לא חינמי.

Broker לא רק מעביר - הוא מחליט

ברגע שמכניסים Broker, הוא מתחיל לקבל החלטות:

  • האם לשמור אירוע או לזרוק אותו
  • האם להעביר מיד או להכניס לתור
  • למי להעביר - ולאיזה סדר
  • מה קורה כשצרכן איטי או נופל

כל החלטה כזו משפיעה על: Latency, עומס, יציבות, ואופי הכשל.

כלומר: Broker אינו צינור - הוא נקודת שליטה.

איפה ה-Latency “נכנס”

במערכת בלי Broker, הזמן עובר ישירות בין יוצר למבצע.

עם Broker, הזמן מתפצל:

  • זמן הגעה ל-Broker
  • זמן המתנה בתור
  • זמן ניתוב
  • זמן עד שצרכן פנוי

אף אחד מהזמנים האלה לא גדול לבדו - אבל יחד הם יוצרים Latency משמעותי, ובעיקר משתנה.

וזה חוזר למה שכבר ראינו: Event-driven לא מבטל זמן - הוא מזיז אותו לתווך.

למה Broker משנה את אופי הכשל

כשאין Broker: כשל הוא מיידי וברור. אם היעד לא זמין - הכול נעצר.

כשיש Broker: כשל יכול להיות שקט:

  • תור מתארך
  • אירועים מצטברים
  • והתגובה מתעכבת בלי שאף אחד “נופל”

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

Broker טוב לא רק מעביר אירועים, אלא גם מגדיר איך נראית תקלה.

המשל

דמיינו מרכז דואר.

בלי מרכז: את מוסרת מכתב ישירות לנמען. אם הוא לא בבית - את יודעת מיד.

עם מרכז: המכתב מתקבל, ממויין, ממתין, ומועבר. את לא יודעת מתי הוא יגיע - וגם לא אם הוא נתקע בדרך.

המרכז לא רק מעביר דואר. הוא קובע את חוויית ההמתנה.

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

Broker הוא לב המערכת ה-Event-driven. לא בגלל שהוא חכם, אלא בגלל שהוא בדרך של הכול.

הוא מאפשר ניתוק תלות וסקייל, אבל גם:

  • מוסיף Latency
  • משנה התנהגות עומס
  • ומזיז כשלים למקומות שקשה לראות

ובגלל זה, אי אפשר לדבר על Event-driven בלי להבין שה-Broker הוא לא צינור - הוא החלטה תכנונית.

תגובות