المعمارية التقنية العامة
#النهج
البداية بـ 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.