
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
كل إثنين في الساعة 9 صباحاً، مدخل cron واحد يوقظ حاوية واحدة. السكربت يُصيّر الملخّص مرّة واحدة ويكتبه إلى رابط pipe بـ ?n=200. مئتا حلقة curl — واحدة لكل مشترك — تسحب البايتات نفسها بالتوازي وتُسلّمها إلى SMTP. التفرّع يعيش في الطبقة التحتيّة، لا في كودك.
ملخّص الإثنين — 4 أمور تستحقّ الفتح هذا الأسبوع
السندات ارتفعت على بيانات رواتب أضعف؛ المنحنى أنهى انعكاسه عند الطرف القصير. نُشير إلى اسمين بأرباح يُسعّرها السوق خطأً.
رسمان: صافي التدفّقات الأسبوعيّة إلى ETFs البنية التحتيّة للذكاء الاصطناعيّ، وتفصيل CPI يختلف مع العنوان.
قائمة قراءة: مقالة طويلة عن الائتمان الخاصّ، وملاحظة حادّة عن سبب كون دورة الفائدة أقصر من 2008.
→ افتح الملخّص الكامل
0 9 * * 1 bash /scripts/digest.shإيقاظ واحد · تصيير واحد · مئتا سحب متوازٍ
Hoody Cron API يُسقط سطر crontab من 5 حقول في مدخل مُدار. السطر يشغّل سكربت exec يُصيّر الملخّص مرّة ويدفعه إلى مسار pipe بـ n=200. مئتا حلقة مشترك تسحب المسار ذاته بالتوازي — الخادم لا يحتفظ بشيء، والقارئ البطيء لا يستطيع حجب البقيّة.
cron لم يصبح أعقد. التفرّع انتقل إلى الطبقة التحتيّة — pipe لا يحتفظ بشيء، السكربت يُصيّر مرّة، والحلقة هي مجرّد SMTP عند الحافّة. لا قائمة انتظار، لا جدول إعادات، لا مقعد أداة حملات.
التصميم الساذج يكرّر 200 إرسال SMTP بالتسلسل، يستغرق 11 دقيقة، ويُسلّم مرّتين حين ينهار في المنتصف. شكل pipe يمنحك التوازي والإيدمبوتنسي وحاوية أصغر — مجّاناً.
الملخّص يُبنى مرّة واحدة بالضبط. مئتا حلقة curl تسحب البايتات نفسها في الوقت ذاته. تشغيل 4 ثوانٍ يحلّ محلّ حلقة تسلسليّة 11 دقيقة — pipe يطبّق الضغط العكسيّ على القرّاء البطيئين دون حجب البقيّة.
لا توجد جدول حالة حملة لاستشارته. إن مات التشغيل قبل اتّصال الـ 200 جميعاً، فإن TTL الـ pipe يُخلي النصف غير المنتهي وتُعيد نقرة cron التالية التصيير. لا تسليم مزدوج، لا دفعة نصف-مرسَلة لتسويتها.
السكربت يستيقظ مرّة في الأسبوع، يعمل أربع ثوانٍ، وتعود الحاوية إلى السكون. أنت تدفع لأربع ثوانٍ — لا لخدمة حملات تعمل دائماً، لا لفاتورة SES لكل متلقٍّ، لا لمقعد Mailchimp.
الـ 200 متلقٍّ ذاتهم، جسم الملخّص ذاته. شكل التشغيل هو ما يتحرّك — من دقائق-من-SMTP-التسلسليّ إلى ثوانٍ-من-HTTP-المتوازي.
وقت ساعة الحائط من نقرة cron إلى آخر تسليم. pipe يبثّ إلى الـ 200 جميعاً بالتوازي؛ عنق الزجاجة يصبح SMTP لأبطأ مشترك، لا الحلقة.
جسم الملخّص يُحسب مرّة واحدة. pipe يُمرّر البايتات نفسها إلى كل متلقٍّ — لا إعادة تصيير قالب لكل متلقٍّ، لا فوترة لكل متلقٍّ، لا ذاكرة تخزين مؤقّت لكل متلقٍّ.
Hoody Pipe API يحدّ n عند 256. ملخّص أسبوعيّ بـ 200 يقع تحت السقف بأريحية — والقارئ البطيء يطبّق ضغطاً عكسياً لكنّه لا يحجب الآخرين.
حدود وفق Hoody Pipe API: عدد المتلقّين 1–256، TTL الـ pipe 5 دقائق في انتظار الاتّصالات، 1000 نقل نشط على مستوى الخادم. مدخل cron نفسه هو صفّ واحد في /users/root/entries بـ schedule وcommand وexpires_at اختياريّ.
أربع لحظات. كل واحدة استدعاء HTTP واحد كنتَ ستفعله يدوياً. cron هو ساعة المنبّه؛ exec هو المُصيِّر؛ pipe هو السلك؛ الحلقة هي الشيء الوحيد الذي يكتبه الوكيل.
المدخل المُدار على /users/root/entries ينطلق. الجدول: 0 9 * * 1. الأمر: bash /scripts/digest.sh. crontab نفسه هو سجلّ JSON واحد — لا Airflow DAG، لا خدمة سير عمل.
سكربت exec يسحب بيانات الأسبوع، يُصيّر markdown، يُحوّل إلى HTML، ويكتب الجسم إلى stdout. تصيير واحد، حمولة واحدة — لا حلقة دمج بريديّ لكل متلقٍّ.
السكربت يُمرّر stdout عبر curl -T - إلى pipe/digest-monday?n=200. pipe يحتفظ بالرفع حتى يتّصل 200 متلقٍّ، ثم يبثّ الجسم إليهم جميعاً بالتوازي.
مئتا حلقة تستدعي curl على المسار ذاته وتُسلّم الجسم إلى SMTP الخاصّ بمشتركيها. البطيئة تحصل على ضغط عكسيّ. السريعة تنتهي في ميلّي ثوانٍ. التشغيل كلّه ينتهي في ثوانٍ.
مدخل cron واحد، حاوية واحدة، مئتا متلقٍّ.
الأدوات المعتادة حين تريد إرسال البريد ذاته إلى قائمة. كلّ منها يفرض عليك مستوى خدمة لما هو، في النهاية، تصيير واحد وحلقة HTTP تتفرّع.
الإثنين في 9 كان يعني عاملاً يطحن عبر SMTP. الآن يعني نقرة cron واحدة، حاوية واحدة، وpipe يفعل البقيّة.