יצירת ארכיטקטורות מבוססות-אירועים באמצעות Eventarc

אתם יכולים להשתמש ב-Eventarc וב-Firestore כדי ליצור ארכיטקטורות מבוססות-אירועים. טריגרים של Firestore ל-Eventarc יוצרים אירועים משינויים במסמכים מסוימים במסד הנתונים. הטריגר יכול לנתב אירועים ליעד נתמך:

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

מגבלות

שימו לב למגבלות הבאות שחלות על טריגרים של Firestore ב-Eventarc:

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

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

  • טריגר משויך למסד נתונים יחיד. אי אפשר ליצור טריגר שתואם לכמה מסדי נתונים.

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

ההבדלים בין פונקציות Cloud Run דור שני לבין דור ראשון

פונקציות Cloud Run (דור שני) משתמשות באירועי Eventarc לכל סביבות זמן הריצה. בעבר, פונקציות Cloud Run (דור ראשון) השתמשו באירועי Eventarc רק בחלק מהסביבות של זמן הריצה. אירועי Eventarc שונים מאירועים של פונקציות Cloud Run (דור ראשון) בכמה היבטים.

  • הטריגרים של Firestore ל-Eventarc תומכים ביעדים נוספים מלבד פונקציות Cloud Run. אפשר להפנות את התנועה CloudEvents למספר יעדים, כולל, בין היתר, Cloud Run,‏ GKE ו-Workflows.

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

    פונקציות Cloud Run (דור ראשון) מאחזרות את הגדרת הטריגר במהלך ההערכה של כתיבת מסד הנתונים, ושינויים בטריגר במהלך ההערכה יכולים להשפיע על השאלה אם Firestore ישלח אירוע או לא.

אינטראופרביליות של אירועים במצב Datastore ובמצב Native

‫Eventarc תומך בטריגרים של אירועים גם במצב Datastore וגם במצב Native. הטריגרים האלה של האירועים פועלים בשני סוגי מסדי הנתונים. מסד נתונים של Firestore במצב Native יכול לקבל אירועים של Datastore, ומסד נתונים של Firestore במצב Datastore יכול לקבל אירועים של מצב Native.

יכולת פעולה הדדית של אירועים מאפשרת לשתף קוד Eventarc בין מסדי נתונים שונים של Firestore.

המרות של אירועים

אם מפעילים טריגר אירועים במצב Native על מסד נתונים במצב Datastore, ‏ Eventarc מבצע את ההמרות הבאות:

  • מרחב השמות של הישות מאוחסן במאפיין PartitionId של האירוע.
  • ישויות מוטמעות מומרות לסוגים של מצב מקורי map.

המאמרים הבאים