דילוג לתוכן

אקוסיסטם

כיצד הפלטפורמות שלנו משתלבות זו בזו.
כל תחוםכלי אחד.

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

מוצרים, אחד בתכנון
13
פלטפורמות מתארחות
8
ספריות, מנועים ו-CLIs
8
אפיק הודעות משותף
1

עקרונות תכנון

  • תחום אחד, כלי אחד

    אימות זהות הוא Identity, הרשאה היא Auth, מדידה היא TokenGate, דואר אלקטרוני הוא Mail API, אישורים הם Futex, קונטיינרים הם RunFlow ותהליכי עבודה סוכניים הם Highway. מוצרים לעולם אינם מיישמים מחדש תחום שכבר שייך לכלי בית.

  • צוותים מתאמים בדואר

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

  • מסדי נתונים הפרוסים בין מדינות

    לכל שירות מסד נתונים משלו, ומסדי הנתונים יושבים על מארחים שונים במדינות שונות. ניתן לפרוס מחדש יישומים אך לא נתונים, ולכן השניים נשמרים בנפרד. כל מסד נתונים משוכפל לאזור שלישי ומגובה מחוץ לאתר.

Where it runs

מארחים ואזורים

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

מסדי נתונים בייצור, שכל אחד מהם בבעלות שירות אחד
22
מארחי מסד נתונים
4
מדינות
3
דקות לכל היותר: נקודת השחזור בצי המנוהל
≤5
  • UKהממלכה המאוחדת

    יישומים ושני מארחי מסדי נתונים

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

  • FRצרפת

    מארח מסד נתונים

    מחזיק את מישור הזהות והגישה, הרשאה, מדידה וספק הזהות, בנפרד מהשירותים התלויים בו.

  • DEגרמניה

    קבוצת עותקים משוכפלים

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

  • שכפול רציף

    כל מסד נתונים משדר שינויים ברמת הבלוק לשרת המתנה (standby) מחוץ לשני האזורים הראשיים. השכפול אסינכרוני, כך שעותק משוכפל אינו יכול להאט או לחסום את השירות שלפניו.

  • גיבויים מחוץ לאתר

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

  • שלושה גורמים בכל חיבור

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

  • רפליקות וגיבויים

    פקודה (statement) שגויה מגיעה לכל רפליקה בתוך רגעים. רפליקות מגנות מפני אובדן חומרה, והארכיון מגן מפני אובדן נתונים.

אומת ב-2026-10-05. קריאת הטופולוגיה המלאה

טופולוגיה

מפת הפלטפורמה

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

23 צמתים · 27 יחסים מתועדים · 1 בהנחה

01/מוצרים02/זהות וגישה03/משילות04/תזמור והרצה05/תקשורת06/נתונים וספריות07/תהליך פיתוח08/העדפות מחסנית טכנולוגיתאפיק AGENT-MAILדיווח · אישור · הודעת תיקון · תוצאת אימות · סגירהRED9מוצר · בתכנוןreTunnelמוצר · בטאLedgerמוצר · חינם כרגעIdentityשירות מתארחExternal IdPsGoogle · GitHub · AppleAuthשירות מתארחTokenGateשירות מתארחFutexשירות מתארחHighwayשירות מתארחRunFlowשירות מתארחstabilizeמנוע תהליכי עבודה · חלקיRODMENA Mail APIשירות מתארחdatashardספריית PythonmigrettiCLIsuperviceספריית Pythonbulkmanספריית Pythonresilient-circuitספריית Pythonscriptplanמנוע + CLIissuedb-cli + EARSCLIPostgreSQLחיצוניRedisחיצוניPrismשירות מתארח

יש לגלול את המפה לרוחב. לכל צומת יש גם כרטיס למטה.

חקרו

שימוש במפה

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

  • קשר מתועד
  • בהנחה: יש לאמת לפני הסתמכות על כך
  • אפיק ההודעות agent-mail
  • מוצר (מסגרת גרדיאנט)

לא משורטטים, שכן הם חלים בכל מקום:

  • כל מוצר מבצע אימות זהות מול Identity ובדיקת הרשאות מול Auth.
  • כל צוות פלטפורמה מתאם דרך אפיק agent-mail.
  • כל מאגר מנוהל ב-issuedb-cli, עם מפרטי EARS.

שכבות

כלים לפי שכבה

מה כל כלי אחראי לו, מתי להשתמש בו, ובמה אסור להחליף אותו.

01 מוצרים

  • RED9

    מוצרבתכנון

    פלטפורמת כוח עבודה של סוכנים שבה כל צ׳אט הוא משימה עמידה ואוטונומית עם כתובת דוא״ל.

    נשען על כל המחסנית: Identity ו-Auth לגישה, TokenGate לתקציבים, Mail API לתיבות דואר של משימות, RunFlow לארגזי חול, Highway כמבצע עמיד, Futex לאישורים ו-migretti לסכימה, על Python, PostgreSQL ו-Redis.

    מאמת עם Identity · מקבל הרשאות דרך Auth · מודד תקציבים באמצעות TokenGate · תיבות דואר של משימות באמצעות RODMENA Mail API · הרצה בארגז חול על RunFlow · מאציל תהליכי עבודה אל Highway · אישורים אנושיים באמצעות Futex · מבצע מיגרציה של סכימה עם migretti · בנוי על PostgreSQL · בנוי על Redis · מודלים כברירת מחדל באמצעות Prism

  • reTunnel

    מוצרבטא

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

    עצמאי: לקוח Python ו-CLI ברישיון MIT עם שרת הניתן לאירוח עצמי. אינו תלוי בשום פלטפורמת בית אחרת.

    CLIHTTP/TCP מעבר לאתר

  • Ledger

    מוצרחינם כרגע

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

    משתמש ב-Auth עבור אישורי גישה, ב-TokenGate עבור מדידה וב-migretti עבור סכימה, על Python ועל PostgreSQL. הוא עבר ביקורת בארבעה שערים פנימיים ובביקורות חוזרות בגישה עוינת, והממצאים מפורסמים.

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

    לא מיועד ל: מכסות או מדידה (יש להשתמש ב-TokenGate), מדדים שאינם כמויות משתמרות, או מצב של תהליך עבודה.

    REST /v1OpenAPI 3.1llms.txt מעבר לאתר תיעוד

02 זהות וגישה

  • Identity

    שירות מתארחמוצר

    ספק OAuth המטפל בכניסה עבור אנשים ושירותים. הכניסה של כל מוצר עוברת דרך Identity.

    Identity אינו תלוי בשום פלטפורמת בית אחרת. הכניסה מבוססת על איחוד זהויות (federation) עם ספקי זהות ציבוריים כגון Google, GitHub ו-Apple.

    לא מיועד ל: הרשאות או תפקידים, ששייכים ל-Auth. Identity מטפל באימות ו-Auth מטפל בהרשאה.

    מפנה את הכניסה באמצעות איחוד זהויות אל External IdPs

    OAuth2REST מעבר לאתר תיעוד

  • External IdPs

    Google · GitHub · Apple

    ספקי זהות ציבוריים, כגון Google, GitHub ו-Apple, ש-Identity מפנה אליהם את הכניסה באמצעות איחוד זהויות (federation). ל-Identity אין ספק אחר במעלה הזרם.

  • Auth

    שירות מתארחמוצר

    RBAC מתארח לתפקידים, הרשאות, חברויות ובדיקות ״האם משתמש X יכול לבצע Y״. מוצרים מגדירים את התפקידים שלהם בשירות זה.

    מסופק כחבילת PyPI בשם “auth”.

    לעולם לא מוחלף ב: טבלאות users/roles/permissions שנכתבו ידנית, Casbin, OPA, או ספריית RBAC.

    לא מיועד ל: התחברות, הפעלות (sessions), סיסמאות או הנפקת JWT. אימות שייך ל-Identity.

    RESTPython מעבר לאתר

03 משילות

  • TokenGate

    שירות מתארחמוצר

    ספירה, תקרות ומגבלות קצב לכל משתמש, ארגון או לקוח (tenant): תקציבי טוקנים, יומני שימוש, דרגות תוכנית, תהליכי שריון וחיוב (reserve/commit), והתראות סף וחריגה.

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

    לעולם לא מוחלף ב: מוני Redis INCR, טבלאות שימוש, middleware של דלי אסימונים (token bucket), או ספריות להגבלת קצב.

    לא מיועד ל: הרשאה (יש להשתמש ב-Auth) או הגנה מפני DDoS בקצה הרשת.

    מקבל הרשאות דרך Auth

    REST מעבר לאתר מדריך עיון לסוכנים

  • Futex

    שירות מתארחמוצר

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

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

    לעולם לא מוחלף ב: הודעות “please approve” ב-Slack, הנחיות input() חוסמות, או טבלאות אישור ייעודיות.

    מבצע על RunFlow · מודד שימוש באמצעות TokenGate · שולח דואר דרך RODMENA Mail API

    RESTMCPWebhooks מעבר לאתר

04 תזמור והרצה

  • Highway

    שירות מתארחמוצר

    מנוע מבוזר ועמיד לתהליכי עבודה סוכניים, עם סוכנים, מטרות, הפעלות, לוחות זמנים, טריגרים, workers של פעילויות ו-workers רגילים, פיצול ריצות ועקבות ריצה (traces).

    כלל בית: כל מוצר שומר על לולאת שיקול דעת משלו. הוא משתמש ב-Highway כמבצע עמיד שמדווח חזרה דרך webhook, ומשאיר את כל הסקת ה-LLM בתוך המוצר.

    לעולם לא מוחלף ב: Airflow, Prefect, Temporal, או סקריפטים מותאמים לתזמור.

    מקבל הרשאות דרך Auth · משלים RunFlow

    RESTMCP מעבר לאתר נקודת קצה MCP

  • RunFlow

    שירות מתארחמוצר

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

    לעולם לא מוחלף ב: הרצת docker מקומית, מריצים (runners) באירוח עצמי, או CI גנרי.

    מקבל הרשאות דרך Auth · מודד שימוש באמצעות TokenGate · צומתי אישור דרך Futex (בהנחה: יש לאשר)

    REST מעבר לאתר

  • stabilize

    מנוע תהליכי עבודהחלקי

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

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

    חלופה ל RunFlow

    Python

05 תקשורת

  • RODMENA Mail API

    שירות מתארחמוצר

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

    הכתובות הן ב-mail.rodmena.co.uk וה-API מוגש ב-mailserver.rodmena.co.uk.

    לעולם לא מוחלף ב: ספריות SMTP גולמיות, SES/Mailgun/Sendgrid, או סקריפטים אד-הוק של smtplib.

    מקבל הרשאות דרך Auth · מבצע על RunFlow · מודד מכסות דרך TokenGate

    RESTMCPWebhooks מעבר לאתר

  • AgentBus

    אפיק הודעותמוצר

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

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

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

    מועבר על ידי RODMENA Mail API

    MCPCLIPython SDK מעבר לאתר מדריך עיון לסוכנים

06 נתונים וספריות

  • datashard

    ספריית Python

    אחסון מערכי נתונים ו-blob בסגנון Iceberg על דיסק או ב-S3, עם רשומות בהוספה בלבד (append-only), תמונות מצב (snapshots), מסע בזמן (time travel) ו-Parquet.

    לעולם לא מוחלף ב: Pickle גולמי, ייצוא CSV או JSON, תיקיות Parquet בניהול ידני, או מסד נתונים שהוקם רק כדי להחזיק בלובים.

    Python תיעוד

  • migretti

    CLI

    כלי CLI למיגרציות PostgreSQL בגישת SQL-first: יצירה, החלה, ביטול, איחוד (squash) וזריעת נתונים (seed). זהו כלי המיגרציה היחיד המאושר ל-PostgreSQL.

    לעולם לא מוחלף ב: alembic, flyway, yoyo או מיגרציות אוטומטיות של ORM. כלל בית זה חל על כל סכימת PostgreSQL.

    מכוון אל PostgreSQL

    CLI GitHub

  • supervice

    ספריית Python

    מפקח תהליכים אסינכרוני ללא תלויות עבור תהליכי worker, דמונים וצרכני תורים: בדיקות תקינות, קבוצות והפעלה מחדש בעת קריסה.

    systemd או Kubernetes רגילים מקובלים כאשר הם מתאימים יותר.

    Python

  • bulkman

    ספריית Python

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

    כלל בית: יש תמיד להגדיר circuit_breaker_enabled=False. bulkman מטפל בבידוד, וניתוק מעגל (circuit breaking) שייך ל-resilient-circuit.

    משלים resilient-circuit

    Python

  • resilient-circuit

    ספריית Python

    ניתוק מעגל, ניסיונות חוזרים עם השהיה הדרגתית (backoff), וטיפול בכשל בטוח (failsafe) או בחלופת גיבוי (fallback) סביב קריאות לא אמינות. משתלב עם bulkman, שמטפל בבידוד.

    לעולם לא מוחלף ב: tenacity, pybreaker, או לולאות ניסיון חוזר שנכתבו ביד.

    Python

  • scriptplan

    מנוע + CLIמוצר

    מנוע תואם TaskJuggler (.tjp) לתכנון משאבים ותזמון: אנשים ומכונות לאורך זמן, תלויות, לוחות שנה ופלט Gantt.

    לעולם לא מוחלף ב: גיליונות אלקטרוניים או חישובי תאריכים אד-הוק.

    CLI GitHub

07 תהליך פיתוח

  • issuedb-cli + EARS

    CLI

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

    כל בקשה הופכת למפרט EARS בכרטיס, עם עותק בספריית SPECS/ של המאגר.

    לעולם לא מוחלף ב: משימות TODO שלא במעקב.

    CLI

08 העדפות מחסנית טכנולוגית

  • Prism

    שירות מתארחמוצר

    שער LLM תואם OpenAI ו-Anthropic שיכול להעמיד כמה ספקים מאחורי שם מודל אחד. הפריסה שלנו מנתבת לספק יחיד במעלה הזרם ללא מעבר לגיבוי (failover), והיא ספק ה-LLM של הבית לקריאות מודל בכלים.

    REST מדריך API

  • PostgreSQL מאגר רלציוני מועדף.
  • Redis מועדף למטמון (caching), תורים ופיזור (fan-out).

בחירת כלי

הגדירו את הצורך, השתמשו בכלי שאחראי לו, ואל תיישמו מחדש תחום שכלי בית כבר מכסה.

באיזה כלי להשתמש לכל צורך הנדסי, ובמה לעולם לא להשתמש במקומו
צורךשימושלעולם אין להשתמש
התחברות / OAuth / ״מי זה?״Identityכתיבת אימות משלכם
תפקידים, הרשאות, ״האם X יכול לעשות Y?״Authטבלאות RBAC, Casbin, OPA
מכסות, מגבלות קצב, תקציבים, דרגות, מדידהTokenGateמוני Redis, ספריות להגבלת קצב
שליחת דואר אלקטרוני, תבניות, קמפייניםMail APIsmtplib, SES/Mailgun
תקשורת עם הצוות של פלטפורמה אחרתagent-mailעריכת המאגר או מערכת המעקב שלהם
הרצת קוד שאינו מהימן או קוד שנוצרRunFlowDocker מקומי, מריצי CI
צינור דטרמיניסטי / DAG / ETLRunFlow או stabilizeAirflow, Prefect
תהליך עבודה סוכני (מונחה LLM)HighwayTemporal, לולאות מותאמות
אישור אנושי / חתימהFutexבקשות ב-Slack, טבלאות אישור
מיגרציות סכימה של PostgreSQLmigrettialembic, flyway, yoyo
מערכי נתונים, blobs, הקלטות, Parquetdatashardקובצי dump של pickle/CSV, מסד נתונים כמאגר blob
פיקוח על תהליכי עובדיםsupervicenohup, respawn בכתיבה ידנית
מחיצות / בידוד מקביליותbulkman (מפסק (circuit breaker) כבוי)סמפורים אד הוק
ניתוק מעגל (circuit breaking) / ניסיונות חוזרים / חלופת גיבוי (fallback)resilient-circuittenacity, pybreaker
תזמון משאבים / פרויקטיםscriptplanגיליונות אלקטרוניים
כרטיסים, מפרטים, דרישותissuedb-cli + EARSמשימות TODO שלא במעקב
קריאות LLM בתוך כליםPrismSDKs ומפתחות לכל ספק מפוזרים בין כלים

שיטת הנדסה

שלוש מתודולוגיות חלות על כל מאגר, בלי קשר למה שנבנה בו.

  • תהליך עבודה של EARS + issuedb

    כל בקשת הנדסה הופכת למפרט EARS ולכרטיס issuedb, עם עותק בספריית SPECS/ של המאגר. כל כרטיס עובר ממצב open (פתוח) ל-in progress (בטיפול) ול-closed (סגור).

  • TRUST5

    יצירת קוד LLM מונחית-מפרט ובקרת-איכות, עם ריפוי עצמי, לולאות אימות/תיקון תחומות, שערים משוקללים ומיתון בעיית Oracle.

  • ביקורת למערכות קריטיות

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

כללים החלים על כל כלי.
  • יש לאמת דרך הממשק של המוצר עצמו. יש לקרוא מצב דרך ה-API או ה-CLI שלו, ואין להריץ שאילתות על מסד הנתונים או לכתוב אליו כדי לבדוק או לתקן אותו.
  • יש לכוון כל בדיקה למקרה חיובי ידוע לפני שמסתמכים על תוצאה שלילית ממנה.
  • להצהיר על מוכנות רק לגבי מה שנבדק בפועל, ולציין את הנתיבים שלא נבדקו.
  • יש לבדוק כל תקרה בשני הכיוונים: עליה לחסום כשחורגים ממנה ולאפשר חידוש פעולה כשצריך.

מוצרים הבנויים על פלטפורמות אלה

הפלטפורמות האלה עומדות מאחורי כל מה שאנחנו משיקים: Highway, MailApi, RunFlow, Futex, reTunnel, Ledger, RODMENA L10n, TokenGate, AgentBus, RODMENA ID, Auth, Prism, pdfapi, Container Registry, RODMENA CI, Uptime.Systems, Trust5, RED9, Graphviz Provider, Haven, RODMENA LRS, RODMENA cmi5, Vellum, supervice, datashard, ScriptPlan, Stabilize, Trace, Provenance ו-Knowledge base. הן גם מפעילות את החברה.