משך: 2 שעות אקדמיות (90 דקות).

מטרת השיעור: הסטודנטים יבנו Ingestion Service עם Redis Temp Storage, כשירות ראשון בפרויקט הסיום.

בסוף השיעור הסטודנטים צריכים: לממש endpoint קליטה+פרסום, להסביר את ההבדל בין Temp Storage ל-Cache-Aside, ולהכיר את מושג ה-Backpressure ברמת מודעות.

דגש קריטי: זהו פרויקט הסיום של הקורס — הדגישו את זה, ותנו לסטודנטים תחושת “פרק אחרון” ולא “עוד יחידה”.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה וחיבור5 דקותהציגו את מבנה הצנרת השלמה (3 שירותים) — פרויקט סיום
הדגמה: Ingestion בסיסי20 דקותREST+Kafka, דומה ל-Collector
Redis Temp Storage25 דקותהבדל מ-Cache-Aside, TTL
Backpressure (מודעות)10 דקותלא ממומש, רק להכיר
השוואה ל-Collector Service10 דקותדמיון ושוני
תרגול מודרך20 דקותתרגיל 1+2

דגשים להעברת השיעור

  • ההשוואה המפורשת ל-Collector Service (מהפרויקט הקודם) חשובה — סטודנטים צריכים לזהות שזה לא “עוד נושא חדש” אלא יישום מוכר בהקשר מעט שונה.
  • ההבחנה Temp Storage מול Cache-Aside היא הנקודה המושגית העדינה ביותר — הקדישו לה זמן עם דוגמאות משתי הגישות זו לצד זו.
  • אפשר לתת ל-Backpressure רק אזכור קצר — אין ציפייה למימוש מלא, רק מודעות למונח ולסיכון.

מושגים

Ingestion — נקודת כניסה לצנרת נתונים. Temp Storage — מצב אחרון ידוע ב-Redis, לגישה מיידית. Backpressure — עומס כשקצב קליטה עולה על קצב עיבוד.


תרגיל חשיבה

שאלת פתיחה: “יש לכם Ingestion Service שקולט נתוני חיישן כל שנייה. Processing Service (השיעור הבא) לוקח לו 5 שניות לעבד כל נתון. מה קורה עם הזמן?”

מהלך: הובילו לתובנה: הפער בין קצב קליטה לקצב עיבוד (5x!) גורם להצטברות בלתי-נגמרת ב-Kafka Topic — זו בדיוק ההגדרה המעשית של Backpressure. שאלו: “מה הפתרונות האפשריים?” (יותר Partitions ומופעי Consumer, קצב קליטה מוגבל, או Sliding Window שזורק ישן) — לא צריך תשובה מלאה, רק מודעות לבעיה.

מה המרצה מראה בסוף: הראו (אם יש כלי מתאים) את גודל ה-Consumer Lag על Topic (כמה הודעות ממתינות שטרם נצרכו) כשקצב הקליטה עולה על קצב העיבוד — מספר גדל ומצטבר הוא ההוכחה החיה לBackpressure.