عن المشروع
AetherGrid هو منسق مهام موزعة للذكاء الاصطناعي يقوم بجدولة المهام عبر عقد الحوسبة بناءً على متطلبات الموارد والقيود، ويدير دورة حياة المهمة الكاملة من الانتظار إلى الجدولة، والتشغيل، والاكتمال، والفشل، وإعادة المحاولة، والإلغاء. وهو مبني حول تصميم صارم قائم على المجال، مع نواة مجال مفصولة لا تعتمد على البنية التحتية، وحلقة مزامنة قائمة على الأحداث، وملكية تنفيذ قائمة على الإيجار.
الدافع المعلن للمشروع هو معالجة المشاكل الصعبة للجدولة على نطاق واسع: ملكية تنفيذ حصرية تحت الفشل، والمزامنة بعد الفشل الجزئي، وفرض حدود الموارد. طبقة المجال (تجميعات Job وNode وWorker وLease وEvent وApiKey) تحتوي على خوارزمية الجدولة وآلة حالة دورة الحياة كبايثون خالص، دون استيراد من FastAPI أو psycopg. خدمات التطبيق تنسق كائنات المجال والمستودعات، بينما توفر البنية التحتية تطبيقات PostgreSQL لكل مستودع باستخدام psycopg خام بدلاً من ORM، بالإضافة إلى تطبيقات SQLite لبعض المستودعات في التطوير المحلي. طبقة العرض هي FastAPI، والواجهة الأمامية هي React مع TypeScript.
القدرات الرئيسية الموصوفة تشمل مصادقة مفتاح API التي تحرس كل مسار (بما في ذلك نقطة إصدار المفاتيح، حيث يتم إنشاء المفتاح الأول فقط عبر سكربت محلي مع وصول مباشر لقاعدة البيانات)، وانتقالات حالة المهمة الصريحة بما في ذلك إلغاء مهمة قيد التشغيل عبر حالة CANCELLING، وصفحات تاريخ دورة الحياة لكل مهمة، ومخصص أفضل ملاءمة واعٍ بالقيود، وتصريف العقد، وتسجيل العمال ونبضات القلب، وعملية عامل مستقلة تستقصي عبر HTTP وتنفذ المهام كعمليات فرعية حقيقية، وملكية تنفيذ قائمة على الإيجار مع تجديد مستمر، وتأكيد صريح لبدء التنفيذ، وتنفيذ عمليات فرعية حقيقية مع إيقاف على مرحلتين (SIGTERM ثم SIGKILL)، وتتبع حيوية العقد، ومزامنة مع إعادة محاولات محدودة، وتسجيل أحداث المجال، وتغذية أحداث حية على مستوى الكتلة، ورؤية العمال، ولوحة تحكم متعددة الصفحات.
يؤكد README على سجلات قرارات الهندسة: 39 ADR موثقة في /docs/adr، تغطي مواضيع مثل حلقة المزامنة، واستعادة المهام وإصلاح المزامنة، وتنفيذ المهام الحقيقي، وتجديد الإيجار المستمر، ومصادقة مفتاح API، وملكية المجال لسياسة الجدولة، وعامل مستقل، والإلغاء عبر تجديد الإيجار، وتسجيل العمال بشكل متطابق، واستعادة المهام المهجورة أثناء الإلغاء، ونقل تنفيذ نبضة الكتلة خارج حلقة الأحداث، وتثبيت انتقالات RUNNING، والعديد من إصلاحات حماية الإيجار حسب هوية الإيجار بدلاً من هوية العامل. يذكر README 347 اختبارًا عبر طبقات المجال والتطبيق والبنية التحتية وAPI، بما في ذلك اختبارات العقود التي تثبت أن تطبيقات المستودعات تتصرف بشكل متطابق.
يتضمن المشروع عرضًا حيًا منشورًا على Render مع PostgreSQL حقيقي ومصادقة حقيقية ونقاط نهاية محمية بمفاتيح API. وهو مرخص تحت MIT ويستخدم Python 3.12 وFastAPI وPostgreSQL وReact/TypeScript وDocker Compose.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.