العودة للمشاريع
تكامل Metabase للتقارير التشغيلية
ربط الأنظمة الداخلية بمنصة Metabase عبر طبقة معالجة غير متزامنة، أثناء العمل في لوسيديا.
- دوري
- مهندس برمجيات
- التقنيات
- FastAPI / RabbitMQ / PostgreSQL / Metabase
شكل ٠٥ معالجة غير متزامنة للتقارير
- Async المعالجة خارج مسار الطلب عبر RabbitMQ
- FastAPI طبقة خدمة تستلم الأحداث وتمرّرها
- PostgreSQL مخزن النتائج الذي يغذّي لوحات Metabase
رسم مبسّط للمعمارية — أعداد العمّال والأحداث في المحاكاة توضيحية. اقرأ الرسم
- الأنظمة الداخلية: كل نظام يرسل أحداثه حين تقع.
- خدمة FastAPI: تستلم الحدث وتضعه في الطابور، فلا ينتظر المُرسِل انتهاء المعالجة.
- RabbitMQ: طابور يمتص الذروة ويمرّر الأحداث بالترتيب — اضغط «دفعة أحداث» لترى ذلك.
- عمّال المعالجة: يستهلكون الطابور بشكل غير متزامن، كلٌّ بسرعته.
- PostgreSQL ولوحات Metabase: النتائج تُخزَّن، واللوحات تقرأ منها مباشرة.
المشكلة
الفرق تحتاج تقارير تشغيلية، والبيانات موزّعة على أنظمة داخلية متعددة.
دوري
مهندس برمجيات ضمن العمل في لوسيديا.
القرارات
- طبقة خدمة: بلغة بايثون وإطار FastAPI.
- معالجة غير متزامنة: RabbitMQ لتمرير الأحداث ومعالجتها خارج مسار الطلب.
- مخزن للتقارير: النتائج تُخزَّن في PostgreSQL لتغذية لوحات Metabase.
ما يمكن إثباته
مشروع عمل؛ الرسم أعلاه تبسيط للمعمارية، وأعداد العمّال والأحداث فيه توضيحية.