שינוי ארכיטקטורה
חזרה למפרטים ומסמכיםמסמכי ארכיטקטורת יעד שאושרו על-ידי הצוות. כל מסמך כאן עבר סקירה ואישור — נעול לעריכה.
Target Architecture
ארכיטקטורת יעד למערכת איכותית, בטוחה, ניתנת להרחבה ובתקציב נשלט
1מטרת המסמך
מסמך זה מגדיר את ארכיטקטורת היעד המוצעת ל-InvestIQ. הוא אינו Migration Plan ואינו הוראת ביצוע. מטרתו לסגור את כיוון המערכת לפני שמחליטים מה מעבירים, באיזה סדר, ואיך בודקים כל מעבר.
2החלטות עקרוניות מ-v0.1 שאושרו על-ידי הצוות
| נושא | החלטת v0.2 |
|---|---|
| Base44 | מוגדר כ-Control Plane: UI, governance, configuration, approvals, reports, central visibility ו-System of Record בשלב הנוכחי. |
| Local Engine | מנוע העבודה התכוף של כל משתמש: monitoring, triggers, local state/cache, adapters, ingestion ו-orchestration. |
| Direct AI | ברירת התכנון לניתוח AI עמוק היא AI Adapter ישיר דרך Local Engine, ולא תלות ב-Base44 InvokeLLM. |
| ריבוי משתמשים | הארכיטקטורה נבנית מראש כך שעומס העבודה התכוף מתפזר בין מנועי המשתמשים ולא מוכפל במרכז. |
| Data Ownership | Base44 נשאר System of Record עד שה-Local Engine מוכיח יציבות ו-Migration עתידי משנה זאת במפורש. |
| Execution Authority | אינו עובר במסגרת מסמך זה. כל שינוי סמכות דורש מפרט, בדיקות ו-Gate נפרד. |
3עקרונות ארכיטקטוניים מחייבים
- • Quality First — אין לפגוע בכיסוי, תדירות או עומק ניתוח רק כדי לחסוך קרדיטים.
- • Safety First — Risk/Decision/Execution אינם עוברים מקום ללא תכנון, Shadow, reconciliation ו-Gates.
- • Control Plane / Data Plane Separation — Base44 מנהל; Local Engine מבצע עבודה תכופה.
- • Event-Driven — המערכת המרכזית מקבלת אירועים ותוצאות משמעותיות, לא כל בדיקה פנימית.
- • Provider Independence — AI, Market Data ו-Broker מחוברים דרך Adapters ולא נטמעים בליבת הלוגיקה.
- • Structured Outputs — פלטי AI ואירועים בין שכבות חייבים Schema קנוני וגרסה.
- • Fail Safe — תקלה, ניתוק או חוסר ודאות אינם רשאים ליצור Decision מומצא או Trade לא מאושר.
- • Observability — Health, freshness, errors, latency, versions ו-cost metrics הם חלק מהמערכת, לא תוספת מאוחרת.
- • Multi-User by Design — כל רכיב נבחן גם בתרחיש של עשרות ומאות משתמשים.
- • Total Cost vs Quality — מודדים עלות כוללת למשתמש מול איכות, לא רק credits.
4תמונת היעד
- משתמש ↔ Base44: UI, הגדרות, אישורים, דוחות ובקרה.
- Base44 ↔ Local Engine: configuration, commands מאושרים, events, candidates, warnings, health ו-metrics.
- Local Engine ↔ Market Data: quotes, prices, indices, news feeds ו-freshness.
- Local Engine ↔ AI Provider: analysis, classification, reasoning לפי trigger/policy.
- Local Engine ↔ Broker Adapter: account/broker state, paper/read-only בפיילוט, reconciliation.
- Base44 ← Local Engine: מידע מסונן, קנוני ומשמעותי בלבד.
5שכבות המערכת העתידית
| שכבה | תפקיד יעד | מיקום מוצע |
|---|---|---|
| Control Plane | UI, configuration, approvals, governance, user management, reports, central visibility | Base44 |
| User Runtime | monitoring, orchestration, trigger engine, local state/cache, queues, adapters | Local Engine על מחשב המשתמש |
| Intelligence Layer | LLM/AI עמוק, classification, structured reasoning | AI Adapter דרך Local Engine |
| Market Data Layer | prices, quotes, indices, feeds, freshness | Direct providers דרך Local Engine |
| Broker Layer | IBKR / בית מסחר ישראלי דרך adapters | Broker-specific adapters |
| Central Audit/Telemetry | health, errors, event summaries, metrics, audit views | Base44/מאגר מרכזי |
| Local Reliability Layer | queue, retry, debounce, cache, local logs, heartbeat | Local Engine |
6Base44 — תפקיד יעד
Base44 נשאר שכבת שליטה מרכזית, לא מנוע חישוב תכוף. בפיילוט הוא ישמור יכולת ניטור מינימלית כדי שלא תהיה עיוורון מוחלט במקרה שה-Local Engine נופל.
- • Dashboard, configuration, approvals, reports, governance והרשאות.
- • User management וריבוי משתמשים.
- • System of Record בשלב הנוכחי.
- • קבלת events קנוניים: candidate, warning, health, scan_summary, broker/reconciliation status.
- • הצגת freshness ו-Local Engine state.
- • Heartbeat monitoring + fallback visibility.
- • ללא polling כבד או ניטור שוק תכוף כברירת היעד.
7Local Engine — תפקיד יעד
- • Market Data polling/streaming ו-Freshness.
- • Local Cache / SQLite או DB מקומי מתאים.
- • Watchlist monitoring וסריקות ערנות בתדירות 15–30 דקות או בהתאם למדיניות.
- • Price/Volume/RSI/Trend/Threshold checks.
- • News/RSS ingestion וזיהוי פריטים חדשים.
- • Trigger Engine.
- • Scanner pre-filter/ranking שאינו חוסם הזדמנויות איכותיות.
- • AI Adapter + Direct AI calls.
- • Health/heartbeat/local logs/metrics.
- • Local queue + retry בעת ניתוק.
- • IBKR read-only/paper connectivity בפיילוט.
- • Broker reconciliation והחזרת סטטוס ל-Base44.
8Trigger Engine — רכיב קנוני חדש
Trigger Engine מוגדר ב-v0.2 כרכיב עצמאי ולא כאוסף if-statements מפוזרים. מטרתו לזהות אירועים משמעותיים ולהחליט מתי להפעיל ניתוח עמוק או להעלות אירוע ל-Control Plane.
| סוג Trigger | דוגמאות | דרישות |
|---|---|---|
| Market Trigger | חציית מחיר, שינוי אחוזי, drawdown, volume anomaly, spread | thresholds, priority, cooldown |
| News Trigger | פריט חדש, ticker match, source priority, breaking news | dedup, relevance pre-check |
| State Trigger | שינוי position state, protection state, broker status | canonical state transition |
| Risk Trigger | exposure/cash/sector/region threshold | deterministic first, AI only if policy requires |
| Operational Trigger | engine offline, stale data, provider failure | health event, user warning, fail-safe |
דרישות חובה: trigger_id, trigger_type, symbol/entity, timestamp, priority, source, debounce/cooldown, reason, policy_version ו-idempotency key. אין לאפשר ירי רציף על אותו אירוע ללא debounce.
כל thresholds של ה־Trigger Engine יהיו Policy/Configuration ניתנים לשינוי ולא ערכים hardcoded בקוד. הדבר כולל ספי מחיר, אחוזי שינוי, drawdown, volume anomaly, priority, debounce, cooldown וכל סף תפעולי אחר. שינוי Policy יתועד ויישא policy_version.
כך אנחנו מיישמים את אותו עיקרון שכבר קבענו בסעיף 11 לגבי 15/60 דקות — ערכי Policy ולא hardcoded.
9Canonical Event Schema — חוזה התקשורת
כל תקשורת Local Engine ↔ Base44 תתבסס על Event Schema קנוני ומנוהל גרסאות. אין payloads ad-hoc לפי workflow.
| Event Type | מטרה | שדות מינימום |
|---|---|---|
| health | מצב המנוע והחיבורים | event_id, user_id, engine_id, status, last_seen, version, timestamp |
| candidate | הזדמנות/מועמד | event_id, symbol, market, score, rationale_ref, source, timestamp, schema_version |
| warning | סיכון/חריגה | severity, category, symbol, reason, trigger_id, timestamp |
| scan_summary | סיכום מחזור | scope, assets_seen, triggers_fired, ai_calls, duration, freshness |
| ai_result | תוצאת ניתוח AI | model/provider, schema_version, confidence/flags, trigger_id, cost/usage |
| broker_status | מצב ברוקר/פקודה/חשבון | adapter, broker_ref, canonical_status, timestamp |
| reconciliation | פער/התאמה | local_state, broker_state, resolution_status, correlation_id |
כל event כולל event_id ייחודי, schema_version, timestamp, source, user/engine identity ו-idempotency key.
10Intelligence Layer ו-AI Adapter
v0.2 מאשר AI Adapter כנקודת החיבור היחידה לשירותי AI. InvokeLLM של Base44 אינו ברירת התכנון העתידית.
- • Primary provider לפי quality/latency/cost/policy.
- • Secondary provider אופציונלי כ-fallback.
- • אם אין ספק זמין או output לא תקין — HOLD/NO-DECISION לפי policy; אין להמציא תוצאה.
- • Structured Output לפי schema מחייב.
- • Secrets מחוץ לקוד ובאחסון מאובטח.
- • שמירת provider/model/version/timestamp/tokens/cost לכל קריאה.
- • מודל מקומי קטן מותר למשימות ממוקדות כגון classification/sentiment אם הוא עומד ב-benchmark.
- • אין להפוך Local Model לדרישת מערכת ואין להשתמש בו לניתוח קריטי ללא הוכחת איכות.
11Heartbeat, Freshness ו-Grace Period
Local Engine חייב לדווח חיים ו-freshness ל-Base44. Base44 אינו רשאי להציג מערכת כ-live כאשר המנוע או הנתונים stale.
| מצב | ברירת מחדל מוצעת | התנהגות |
|---|---|---|
| LIVE | heartbeat תקין ועדכני | תצוגה רגילה |
| STALE | 15 דקות ללא heartbeat | סימון גלוי שהמידע אינו עדכני |
| OFFLINE/WARNING | 60 דקות ללא heartbeat | אזהרה בולטת למשתמש; אין הסתמכות על local monitoring |
| RECOVERING | המנוע חזר לאחר ניתוק | re-sync + reconciliation לפני חזרה למצב תקין |
המספרים 15/60 דקות הם Policy Defaults בלבד. יש להגדירם בקונפיגורציה ולא לקבע בקוד.
12מחשב המשתמש כבוי
זהו סיכון ארכיטקטוני מהותי. Local Engine שאינו פועל אינו מנטר, אינו מעבד חדשות ואינו מפעיל triggers.
- • Base44 מציג Engine State ו-Last Seen.
- • נתונים stale מסומנים במפורש.
- • אין להסתיר את התלות או להציג תמונת מצב כאילו היא live.
- • בפיילוט: האחריות להפעלת המחשב והשירות נשארת אצל המשתמש.
- • בעתיד: Hosted Engine/VPS הוא מסלול אפשרי, אך אינו תנאי לפיילוט.
13Broker Architecture ו-Reconciliation
ליבת InvestIQ פונה ל-Broker Adapter אחיד. גם בשלב Read-Only/Paper נדרש reconciliation מלא ברמת state, sessions וסטטוסים.
| Adapter | שוק | v0.2 |
|---|---|---|
| IBKR Adapter | ארה"ב | Read-Only/Paper בפיילוט; account/order state; session health; reconciliation |
| Israel Broker Adapter | ישראל | ממשק בהתאם לבית המסחר ולמגבלותיו; ללא הנחת API זהה ל-IBKR |
| Future Broker Adapter | עתידי | הרחבה בלי לשנות לוגיקת ליבה |
Reconciliation Pilot Minimum: correlation_id לכל פעולה/בקשה, canonical broker status mapping, זיהוי mismatch, retry מוגבל, unresolved state, והחזרת status ל-Base44. אין להניח שהברוקר ביצע פעולה רק מפני שנשלחה בקשה.
14שיקום חמש יכולות האיכות
| יכולת | דרישת איכות | מיקום יעד v0.2 |
|---|---|---|
| Pre-Filter Scanner | baseline scan + מגמות איטיות + trigger analysis; אין עיוורון לשוק שקט | Local Engine + AI Adapter |
| SCAN_CIO תוך-יומי | monitoring תכוף + AI על אירוע מהותי | Local Engine; event-driven AI; result ל-Control Plane |
| Agent Intervals | ערנות 15–30 דק׳ ללא חלון עיוור; deep analysis לפי trigger/מדיניות | Local Engine |
| News Scans | זיהוי חדשות חדשות בתדירות גבוהה וניתוח רק לפריטים חדשים | Local Engine ingestion + Direct AI classification |
| evaluateProtectionStatus | בדיקה שוטפת + הערכה עמוקה כשיש שינוי מהותי | מועמד ל-Local Engine; סמכות הגנה/ביצוע נשארת לפי Governance הקיים עד החלטה |
15ריבוי משתמשים — עיקרון תכנון מרכזי
Target Architecture נבנית מראש כך שמשתמש נוסף אינו מכפיל בהכרח את עומס העבודה הכבד בתוך Base44. לכל משתמש יכול להיות Local Engine משלו, עם Configuration וזהות משלו.
Base44 מרכז ניהול ותצוגה; העבודה התכופה מתפזרת בין מנועי המשתמשים. בעתיד ניתן לבחון Hosted Engine/VPS למשתמשים שאינם רוצים מחשב פעיל, אך אין צורך להחליט זאת בפיילוט.
16תקשורת Base44 ↔ Local Engine
התקשורת צריכה להיות מצומצמת, מאובטחת ו-idempotent. אין צורך ש-Base44 יראה כל פעולה פנימית.
- • Base44 → Engine: configuration/version, user policy, approved commands/triggers לפי הרשאה.
- • Engine → Base44: Candidate, Warning, Decision input, Scan Summary, Health, Error, Metrics.
- • Heartbeat בתדירות שתיקבע.
- • Idempotency key לכל אירוע.
- • Authentication ו-secrets מחוץ לקוד.
- • Retry מוגבל ו-queue מקומי בעת ניתוק.
- • אין לבצע פעולה מסחרית רק משום שה-Sync נכשל או חזר.
17Data Ownership ו-System of Record
בשלב הנוכחי אין לשנות את הבעלות הקנונית על נתוני המערכת. Base44 נשאר System of Record של המערכת הקיימת עד שמסמך Migration עתידי יקבע אחרת.
Local Engine מחזיק Cache ו-State תפעולי מקומי לצורך עבודתו. כל שינוי עתידי בבעלות על Decision, Trade, Portfolio או Audit יחייב החלטה מפורשת.
18בטיחות ו-Fail-Safe
- • Local Engine offline → מצב גלוי; אין להציג נתונים stale כ-live.
- • AI Provider unavailable → fallback/hold לפי policy; אין להמציא Decision.
- • Market Data stale → חסימת החלטות שתלויות בנתון עדכני.
- • Sync failure → queue/retry; אין שכפול אירועים.
- • Broker disconnect → אין הנחת ביצוע; reconciliation חובה.
- • כל Live Execution עתידי מחייב idempotency, canonical state, risk gate ו-reconciliation.
- • אין שינוי סמכות במסמך v0.2.
19עלות — כיצד נמדוד נכון
המטרה אינה להגיע למינימום קרדיטים בכל מחיר. המטרה היא Total Cost נמוך ביחס לאיכות ולמספר המשתמשים.
- • Base44 credits / user / month.
- • AI API tokens and cost / user / month.
- • Market Data cost / user / month.
- • Infrastructure/hosting cost אם יתווסף בעתיד.
- • Latency ו-error rate.
- • Quality metrics: Precision/Recall/Outcome/coverage.
- • עלות כוללת מול רמת איכות — לא עלות בלבד.
20מה לא מחליטים במסמך זה
- • לא בוחרים עדיין ספק AI סופי.
- • לא קובעים שמודל מקומי עדיף על API חיצוני.
- • לא בוחרים עדיין Market Data Provider סופי.
- • לא מעבירים Risk/Decision/Execution Authority.
- • לא מוחקים Workflows קיימים.
- • לא מפעילים Local Engine.
- • לא מריצים Shadow.
- • לא מבצעים שינוי ב-Base44.
- • לא מחליטים עדיין Hosted Cloud/VPS לעומת Local לכלל המשתמשים.
מסמך זה מאוחסן כחלק ממאגר "שינוי ארכיטקטורה" — מסמכים שאושרו על-ידי הצוות. נעול לעריכה.
InvestIQ — Target Architecture v0.2 | ספטמבר 2026 | Candidate for Approval