מנוחה, gRPC ו ־ Webhooks ב ־ iGaming: תבניות ואנטי ־ תבניות
מאמר מלא
1) מפת פרוטוקול: מי אחראי למה
בקשות סינכרוניות אוניברסליות מעל HTTP/JSON. מטמון שקוף, דיבוג פשוט, נוח לשילוב B2B ו API מנהל.
GRPC - RPC בינארי בעל ביצועים גבוהים מעל HTTP/2: לינה נמוכה, זרמים, מעגלים קשיחים. טוב עבור נתיבי כסף חם (ארנק/להתיישב), שירותים פנימיים ונחלים ארוכי חיים (לחיות).
פתקי אינטרנט הם שיחות טלפון מהמקבל לשולח. משמש לאירועים (”הכסף נפל”, ”הגבול עבד”), שבו היוזם הוא לא תמיד זה שמחכה לתוצאה.
כלל הזהב:- כסף הולך על RPC סינכרוני (REST/gRPC) עם אינווריאנטים קשים ואידמפוטנטיות. טלמטריה ואירועים עסקיים - באופן אסינכרוני (webhooks + event bus).
2) נתיבים טיפוסיים וערוצים מומלצים
3) עיצוב מונחה חוזה
3. 1 מנוחה (שברים)
פוסט/v1/הימורים/לאשר
כותרות: X-Idempotency-Key: bet_r_8c12_1, X-Trace-ID: tr_a1b2
{
”session_id":"s_456,” ”bet_id":"b_001,” ”round_id":"r_8c12,” ”כמות”: 00, ”מטבע”:” EUR”
}
* 200 "סטטוס": "מורשה", "hold _ id':" h _ zz1 "
409
"קוד": "DUPLICATE", "הודעה": "בית כבר מורשה", "trace _ id':" tr _ a1b2 "3. 2 GRPC (פרוטובוף, מפושט)
פרוטו תחביר = ”proto3”;
ארנק החבילה. V1;
הודעה [int64 minor_units = 1; מטבע מחרוזת = 2 ;//סנט הודעה Authority BetReq {string session_id=1; bet_id=2 מחרוזות; round_id=3 מחרוזות; סכום כסף = 4; idempotency_key=5 מחרוזות;
אישור הודעה BetRes _ status = 1; hold_id=2 מחרוזות;
ארנק שירות @ action: inmenu
RPC Authority Bet (Authority BetReq) מחזירה (Authority BetRes);
RPC Req מחזירה (ResidenRes);
}3. 3 webhooks (דוגמה למנוי)
פוסט https ://ספק. דוגמה/קורות אינטרנט
{
"נושא ":" ארנק. אשראי. בסדר,” callback_url":"https://rgs ”. דוגמה/יומן, "סוד": "", "גרסה": "1. 2"
}
פוסט https ://rgs. דוגמה/יומן
כותרות: X-חתימה: Sha256 =..., X-Trace-ID: tr_a1b2
{
"event_type":"wallet. אשראי. בסדר,” schema_version":"1 ”. 2. 0, "event_id":"uuid," "מטען": ("player _ id':" p _ 19f3 "," כמות ": (" minor _ unices ": 1460," מטבע ":" EUR ")
}4) אידמפוטנטיות ועקביות
תמיד דרוש 'X-Idempotency-Key' על פעולות כתיבה (REST/gRPC metadata). ההילוך החוזר = אותה התשובה.
הרכב המפתח קשור לפרמטרים עסקיים (לדוגמה, ”bet _ id + sume”).
Sagas עבור תהליכים ארוכים (הרשאה להתחייב/lock = ליישב ac.credit).
אירועים נלכדים אטומית ליד העסקה ומפורסמים באופן חיצוני.
5) ורסינציה ותאימות
מנוחה - 'v1/... '+' Deprecation/Sunset '- ראשי; ארנק החבילה של GRPC. v1 '; אירועים - 'schema _ גרסה' בגופים + סכימת רישום.
SemVer: שדות קצה קטנים - אופציונליים/חדשים; סרן - נתיב/חבילה חדשה, ”אות כפולה” של אירועים על הנדידה.
לעולם אל תשנה את הסמנטיקה של סטטוסים כספיים ללא גרסה עיקרית.
6) בטיחות המשלוחים
MTLS על כל S2S; לחתימת גוף (HMAC/EDDSA) + חותמת זמן וחלונות תוקף.
הגבלת היקף (OAuth2 CC) וגזרת מפתח למותג/אזור.
אפס אמון: מדיניות רשת, אסימונים קצרי ימים, כספת/HSM, ביקורת תולעת של פעולות קריטיות.
7) יכולת תצפית ו ־ SLO
trace _ id ב-REST, gRPC metadata ו-webhooks.
מדדים: p50/p95/p99 latency, שיעור שגיאה על ידי קודים, תפוקה, תורים lag.
SLO מינימום (ציוני דרך):- ארנק p95 '<150 ms' (אישור/התיישבות), REST public B2B p95 '<300 ms', Webhooks נשלחו '<5 min' 99 'אחוזון, Lost/Duplicated Settlemental = 0.
8) רטריי, חזרה והזמנת משלוח
REST/gRPC: גיבוי מעריכי, ג 'יטר, הגבלת משך (תאריך יעד/פסק זמן).
Webhooks: משלוח חוזר '2xx'; שמירת הסדר על ידי מפתח ('שחקן _ id/סיבוב _ id') או שכפול במקלט.
נגד סערות: גבול נסיגה מקביל, מפסק, מגבלת קצב.
9) תבניות אינטגרציה
תבנית א ': ”כסף מסונכרן, אירועים אסינכרונים”
1. RGS * Wallet (gRPC/REST) ”תאשר” ”ליישב/קרדיט”.
2. במקביל, 'הימור מתפרסם. התיישב לאוטובוס, והספק מקבל קבלה.
בנוסף, כסף מהיר, יכולת תצפית. מינוס: אתה צריך שני קווי מתאר.
תבנית ב ': ”הזרמה בשידור חי”
Live-core ↔ Bridge באמצעות הזרמת gRPC (שולחן סטטוסים, חלון הימורים).
עסקאות מזומנים - נפרדות ללא תשלום; אירועים באוטובוס/באינטרנט.
בנוסף, עיכוב מינימלי של סטטוסים חיים.
תבנית C: ”B2B מנוחה ציבורית”
קטלוגים/בונוסים/שיוך/דוחות - מנוחה עם סמן, מסננים, ETag.
פלוס: אינטגרציה שותפה פשוטה.
10) אנטי דפוסים (דגלים אדומים)
עסקאות במזומן רק דרך האינטרנט (ללא אישור סינכרוני).
אין ”Idempotency-Key” = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
פרסום אירועים עוקף תיבת יוצא/CDC (אירועים אבודים).
לא חתום/חתום/חוברות אינטרנט = החלפה.
ערבוב PII/כסף של אזורים שונים בערוץ אחד ללא תגי ”אזור/דייר”.
מטען בינארי גדול בספרי אינטרנט (לשבור מגשים מחדש ומגבלות).
אפס הידרדרות: נפילת פנקסי האינטרנט חוסמת את החישוב של הכסף.
GRPC ללא תאריך יעד וללא גיבוי - קשרים תקועים, תשישות משאבים.
11) רשימות בדיקה
ארכיטקט/פלטפורמה
[ ] כסף על ידי GRPC/Rest עם אידמפוטנטיות, אירועים - אינטרנט/אוטובוס.[ ] Outbox/CDC בכל נתיבי הכסף.[ ]/vN 'schema רישום; תהליך הפחתה/שקיעה.[ ] חתימות mTLS + webhook; סודיות לכל מותג/אזור.[ ] לוחות SLO-dashboard p95/p99, שיעור שגיאות, webhook-lag.[ ] תרגילי DR/xaoc: משלוח כפול, מחוץ לסדר, מזבלה של האזור.ספק/RGS
[ ] שליחת "X-Trace-Id' ו-" X-Idempotency-Key ".[ ] Backoff ו Dauplication נסיגה; מוכן מחדש לספק קורות אינטרנט.[ ] גרסאות חוזה עדכון; מגיב ל ”דעיכה/שקיעה”.[ ] יומנים/מדדים לפי קוד שגיאה וזמן.12) פתרונות מיני למקרים חדים
ספארי/ITP והגבלות צד שלישי: כסף - במארח (Rest/gRPC), תוכן iFrame מתקשר באמצעות 'postMessage'; קורות מארח אחר מאשר iFrame.
רב-מותג: detant _ id _ brand _ id/license 'in כותרות ואירועים; מפתחות/תעודות נפרדות.
פרצים גדולים (טורנירים): לפני חוברות אינטרנט - חוצץ/תור עם DLQ; כאשר עמוס - ”אין מפגשים חדשים ”/” לעצור ווים שאינם ליבה ”.
13) דוגמאות של התראות מונחות ־ SLO
ארנק. לאשר p95> 150 ms 5 דקות ברצף.
'שכפול/IDEMPOTENCY _ MISMATCH' שגיאות> 0. 5% בתוך 10 דקות.
Webhook lag p99> 180 C על נושא 'bt התיישב'.
פיגור צרכני בקפקא> 30 s עבור wallet. אשראי ".
14) נסיגה
REST, gRPC וחוברות אינטרנט ב-iGaming אינן טכנולוגיות ניתנות להחלפה, אלא חלקים מאותו מודל הפעלה.
REST/gRPC מוחזקים על ידי מחדלים כספיים: Latency, idempotency, SLAs קפדניים.
קווי אינטרנט/אוטובוס מספקים שקיפות וסקאלה: אירועים, טלמטריה, אינטגרציות.
הוסף תיבה/CDC, ורסינציה, חתימות ויכולת תצפית - וקבל ארכיטקטורה שבה הכסף נע במהירות ובביטחון, האירועים אינם אבודים, והשדרוגים חסרי כאב.
