OB
אופיר ברנס
Builder · TLV
חזרה לכל הפרויקטים
Automation · 2026 · Personal Project

BatchPulse — Bulk HTTP Orchestrator

אורקסטרציה אמיתית של אלפי בקשות HTTP, פר־שורה, עם retry, p95 חי והגנת SSRF.

BatchPulse — Bulk HTTP Orchestrator

BatchPulse היא פלטפורמת automation מלאה שתורמת תבנית בקשת HTTP אחת ל”רצים” מקבילים מרובי־שורות. נבנתה מאפס: backend FastAPI אמיתי שרץ עכשיו על zbang-api, ארבע טבלאות PostgreSQL (batchpulse_batches, batchpulse_runs, batchpulse_rows, batchpulse_settings), סקדולר אסינכרוני שעובד כל 5 שניות, ופרונט גלאסמורפי עם 6 sections, 4 גרפי SVG ייחודיים ו־4 codex images.

5+ יכולות נפרדות שעובדות יחד:

  1. קונסולה רב־פאנלית — רשימת batches, טבלת ריצות, ופאנל דריל־דאון לכל שורה בריצה. בחירה ב־run מציגה את כל השורות עם קוד תגובה, latency ופלט מקוצר.
  2. קומפוזר תבניות — עורך URL/headers/body בסגנון Jinja {{ var }} עם תצוגה מקדימה חיה מ־/api/batchpulse/compose/preview. רנדר וריאבלים בלי לשגר בקשה.
  3. אנליטיקה חיה — 4 גרפים: timeline של avg ו־p95 latency, donut של status codes, throughput bars לפי run, ו־health rings עם 4 KPIs. הכל מ־compute_analytics() על SQL.
  4. ניהול הגדרות רב־שלבי — 3 tabs (כללי / אבטחה / התראות), שמירה ב־/api/batchpulse/settings עם תקרת RPS, SSRF blocklist, webhook callback ואחוז שגיאות להתראה.
  5. סקדולר אסינכרוני — לולאת asyncio שמגלה ריצות בתור, מפיצה למשימות מקבילות עם rate-limit ו־retry אקספוננציאלי, ומעדכנת DB אחרי כל שורה.
  6. הגנת SSRF משוכבת — חסימת private IPs (10.x/172.16-31/192.168.x/127.x), metadata endpoints של AWS/GCP, ו־allowlist מותאם אישית — לפני כל שיגור.

ניתן לקנפג:

  • שם workspace, אימייל אופרטור, User-Agent ברירת מחדל
  • תקרת RPS גלובלית ומקסימום שורות לריצה
  • Hosts חסומים (CSV)
  • Webhook callback URL בסיום ריצה
  • סף אחוז שגיאות להתראה

תוצאות אמיתיות (e2e שאומת בזמן build):

  • POST /api/batchpulse/runs עם 4 שורות ← הסקדולר אסף, ביצע בקשות אמיתיות ל־httpbin.org, וקיבל 3 הצלחות + 1 שגיאת 404 שעברה retry. avg latency 324ms, p95=406ms.
  • 3 batches שנזרעו אוטומטית + 70 שורות היסטוריות שאוכלסו את הגרפים.
  • כל endpoint שני (/bootstrap, /batches, /runs/{id}/rows, /settings, /compose/preview, /analytics) מגיב 200.

ארכיטקטורה: FastAPI · SQLAlchemy · PostgreSQL · httpx async · asyncio scheduler · Pydantic schemas · Nginx alias · frontend vanilla JS + Heebo/Frank Ruhl Libre/IBM Plex Mono. מערכת אמיתית מותקנת ופעילה ב־zbang-api בקונטיינר production.

· TECHNOLOGY ·
FastAPI PostgreSQL asyncio httpx SSRF guard SQLAlchemy Pydantic SVG charts Nginx Vanilla JS

פרויקטים קשורים.

· YOUR PROJECT NEXT ·

הפרויקט הבא שלך?

בוא נדבר