פרויקט מסכם סופי — צנרת הנתונים המלאה
הגדרת הפרויקט
זהו הפרויקט האחרון והמסכם של הקורס כולו. שלושה שירותים עצמאיים — Ingestion (C#), Processing (Python), Query (C#) — כל אחד נבנה בנפרד בשיעורים הקודמים, צריכים כעת להתחבר לצנרת נתונים שלמה אחת: נתון גולמי נכנס דרך Ingestion, מעובד ומאוחסן דרך Processing (כולל Windowing ו-DLQ), וזמין לשליפה דרך Query — כל זה עם docker-compose. אין כאן שום כלי טכני חדש — docker-compose, Kafka, Redis, Postgres+EF Core כולם כבר נבנו בנפרד ביחידות הקודמות. המשימה היחידה כאן היא חיבור: בדיקת כל שירות בבידוד לא מוכיחה שה-Interface Contracts בין Ingestion↔Processing↔Query נכונים — רק Full Pipeline Verification (נתון אחד שעובר את כל השרשרת) מוכיח שהמערכת עובדת כמכלול אחד, לא כאוסף חלקים נפרדים.
מה צריך להיות מוכן בסוף
דרישות:
docker-compose.ymlמלא עם כל 3 השירותים (Ingestion, Processing, Query) + 4 רכיבי התשתית (Kafka, Redis, Mongo, Postgres)- Full Pipeline Verification: נתון אחד שנשלח ב-
POST /api/ingestionמגיע בסוף נכון ומעובד דרךGET /api/query/records - הדגמת DLQ: נתון פגום מכוון מגיע ל-queue הייעודי לשגיאות ולא פוגע בשאר הזרימה
- הדגמת Cache Invalidation: הוספת נתון חדש ולאחר מכן invalidation גורמים לשליפה הבאה להציג את הנתון המעודכן
קריטריוני הצלחה:
• docker-compose up מעלה את כל 7 הרכיבים (3 שירותים + 4 תשתית) בלי שגיאות בלוגים
• תרחיש קצה-לקצה מלא (נתון תקין) עובד בהרצה אחת: מ-Ingestion, דרך Kafka ו-Processing, ועד זמינות ב-Query
• נתון פגום מנותב ל-DLQ ולא גורם לקריסה או לעצירה של שאר הצנרת
• עדכון קאש (invalidation) משקף מיד את הנתון החדש בשליפה הבאה