למה Inference הוא המקום שבו מודולריות נכשלת

תוכן עניינים

למה Inference הוא המקום שבו מודולריות נכשלת

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

על הנייר - זה מושלם.

אבל ב-Inference, דווקא שם, המודולריות מתחילה להיסדק.

לא כי המודולים לא טובים - אלא כי ההתנהגות שלהם כבר לא עצמאית.

רכיבים עצמאיים לא מתנהגים עצמאית

ב-Inference, רכיב כמעט אף פעם לא פועל לבד:

  • בקשה עוברת דרך כמה שכבות
  • כל שכבה מוסיפה זמן, תור והנחות
  • וכל אחת מגיבה לעומס בצורה שונה

כל מודול יכול להיות “תקין” בפני עצמו - ועדיין, יחד, הם מייצרים התנהגות שלא תוכננה.

Latency מצטבר. Retries מתנגשים. Backpressure מדלג בין שכבות.

ההתנהגות האמיתית נוצרת בין המודולים - לא בתוך אף אחד מהם.

למה בידוד לוגי לא מבודד התנהגות

הפרדה לוגית אומרת: “הרכיב הזה לא יודע על הרכיב ההוא”.

אבל המערכת יודעת.

אם רכיב אחד מאט:

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

אף מודול לא “שבר חוזה”. אבל החוזה לא כלל זמן, עומס וקצב.

ב-Inference, אלה בדיוק הדברים שקובעים.

אינטראקציות שמודולריות מסתירה

מודולריות נוטה להסתיר:

  • תלות בקצב
  • תלות בזמינות משאבים
  • תלות בתזמון

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

פתאום:

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

גבולות המודולריות בפרודקשן

מודולריות מצוינת לפיתוח. Inference חי בפרודקשן.

ובפרודקשן:

  • זמן משותף לכולם
  • עומס משותף לכולם
  • כשל אחד משפיע על הזרימה כולה

לכן, Inference דורש חשיבה מערכתית:

  • לא רק “האם המודול נכון”
  • אלא “איך הוא משפיע על אחרים תחת עומס”

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

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

Inference הוא המקום שבו מתברר: מודולים אולי עצמאיים - אבל ההתנהגות לא.

מערכת Inference יציבה לא נשענת רק על הפרדה לוגית, אלא על הבנה עמוקה של אינטראקציות.

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

תגובות