محمود الحبشمتاح لمشاريع جديدة
  • أعماليأعمالي
  • الخدماتالخدمات
  • المختبرالمختبر
  • المقالاتالمقالات
  • تواصلتواصل
عمّان--:--EN
المقالات/DevOps والسحابة

البنية المبنية على الأحداث: بناء أنظمة ذات اقتران ضعيف

صمم أنظمة مبنية على الأحداث مع طوابير الرسائل ومصادر الأحداث وCQRS — أنماط تستخدمها Netflix وLinkedIn.

22 فبراير 2026دقيقة قراءةDevOps والسحابةRead in English

في هذه الصفحة

  1. المفاهيم الأساسية
  2. تطبيق أحداث Laravel
  3. نمط CQRS
  4. الفوائد

البنية المبنية على الأحداث تفصل الخدمات بالتواصل عبر الأحداث بدلاً من الاستدعاءات المباشرة.

المفاهيم الأساسية

الحدث: حقيقة أن شيئًا حدث
المنتج: يصدر الأحداث
المستهلك: يتفاعل مع الأحداث
الوسيط: يوجه الأحداث (RabbitMQ, Kafka, SQS)

تطبيق أحداث Laravel

php
class OrderPlaced
{
    public function __construct(
        public readonly Order $order,
        public readonly User $user,
    ) {}
}

class UpdateInventory implements ShouldQueue
{
    public $tries = 3;
    public $backoff = [10, 60, 300];

    public function handle(OrderPlaced $event): void
    {
        foreach ($event->order->items as $item) {
            Product::where('id', $item->product_id)
                ->decrement('stock', $item->quantity);
        }
    }
}

OrderPlaced::dispatch($order, $user);

نمط CQRS

جانب الكتابة: التحقق → تحديث قاعدة البيانات → إصدار الأحداث
جانب القراءة: قراءة من نماذج محسّنة غير مُطبّعة

الفوائد

  • اقتران ضعيف — الخدمات لا تعرف عن بعضها
  • قابلية التوسع — المستهلكون يتوسعون بشكل مستقل
  • المرونة — المستهلكون الفاشلون يعيدون المحاولة
  • سجل التدقيق — الأحداث توفر سجل نشاط طبيعي
كل المقالات

تابع القراءة

  • Docker للمطورين: من الصفر إلى التطبيقات المعبأة في حاويات28 فبراير 2026دقيقة قراءة
  • خطوط أنابيب CI/CD مع GitHub Actions: أتمتة كل شيء22 فبراير 2026دقيقة قراءة
  • مبادئ الكود النظيف: اكتب كودًا يمكن للبشر قراءته22 فبراير 2026دقيقة قراءة