הגדרת הפרויקט

זהו הפרויקט האחרון והמסכם של הקורס כולו. שלושה שירותים עצמאיים — 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 (נתון אחד שעובר את כל השרשרת) מוכיח שהמערכת עובדת כמכלול אחד, לא כאוסף חלקים נפרדים.

מה צריך להיות מוכן בסוף

דרישות:

  1. docker-compose.yml מלא עם כל 3 השירותים (Ingestion, Processing, Query) + 4 רכיבי התשתית (Kafka, Redis, Mongo, Postgres)
  2. Full Pipeline Verification: נתון אחד שנשלח ב-POST /api/ingestion מגיע בסוף נכון ומעובד דרך GET /api/query/records
  3. הדגמת DLQ: נתון פגום מכוון מגיע ל-queue הייעודי לשגיאות ולא פוגע בשאר הזרימה
  4. הדגמת Cache Invalidation: הוספת נתון חדש ולאחר מכן invalidation גורמים לשליפה הבאה להציג את הנתון המעודכן

קריטריוני הצלחה:

• docker-compose up מעלה את כל 7 הרכיבים (3 שירותים + 4 תשתית) בלי שגיאות בלוגים

• תרחיש קצה-לקצה מלא (נתון תקין) עובד בהרצה אחת: מ-Ingestion, דרך Kafka ו-Processing, ועד זמינות ב-Query

• נתון פגום מנותב ל-DLQ ולא גורם לקריסה או לעצירה של שאר הצנרת

• עדכון קאש (invalidation) משקף מיד את הנתון החדש בשליפה הבאה

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

Docker — Compose overview

Microsoft Learn — Microservices architecture