وثيقة عامة

المعمارية التقنية العامة

البداية بـ Laravel Modular Monolith سريع التطوير ومنظم إلى bounded contexts، مع قواعد تمنع التشابك. تُفصل الخدمات فقط عند وجود حاجة قياس واضحة: اتصالات طويلة، معالجة فيديو، مكالمات، بحث أو حمل/ملكية فريق مستقلة.

آخر تحديث: أغسطس 2026 الإصدار 1.0 ملف Markdown

المعمارية التقنية العامة

#النهج

البداية بـ Laravel Modular Monolith سريع التطوير ومنظم إلى bounded contexts، مع قواعد تمنع التشابك. تُفصل الخدمات فقط عند وجود حاجة قياس واضحة: اتصالات طويلة، معالجة فيديو، مكالمات، بحث أو حمل/ملكية فريق مستقلة.

#المكونات

  • Clients: Web SSR/SPA، التطبيق الرئيسي، Messenger، Admin.
  • Edge: DNS/CDN/WAF/Load Balancer وAPI gateway عند الحاجة.
  • Laravel: Identity، Profiles، Social Graph، Content، Engagement، Feed، Moderation، Business/Jobs.
  • Realtime: WebSocket gateways، broker، presence وnotification orchestration.
  • Media: direct upload، malware scan، transcoding، thumbnails، object storage وCDN.
  • Calls: signaling، STUN/TURN وSFU مع QoS telemetry.
  • Data: PostgreSQL، Redis، object storage، OpenSearch لاحقًا، analytics store مستقل.
  • Operations: CI/CD، secrets، logs، metrics، traces، error tracking، backup وDR.

#حدود الاتصال

  • REST/OpenAPI للعمليات المتزامنة.
  • WebSocket/AsyncAPI للأحداث الفورية.
  • Domain events عبر outbox ثم broker للعمليات غير المتزامنة.
  • لا وصول مباشر لقاعدة بيانات وحدة أخرى؛ التكامل عبر service contract أو event.

#متطلبات غير وظيفية

  • SLOs تُحدد لكل إصدار: availability، latency، durability وrecovery.
  • stateless services حيث أمكن، idempotency، timeouts، retries بحدود وcircuit breakers.
  • multi-AZ للإنتاج، تشفير، least privilege، audit وobservability by default.

#قرارات مؤجلة عمدًا

نوع SFU، مستوى E2EE، مزود cloud، محرك البحث النهائي، وأي microservice split تُحسم عبر ADR بعد القياس والـ spikes.

ملاحظة اعتماد

هذه الوثيقة جزء من خط الأساس للمشروع. أي تغيير مؤثر في النطاق أو المدة أو التكلفة يُدار عبر طلب تغيير معتمد.

وثائق SRORIX