قمت بتصميم وتطوير نظام قواعد بيانات موزّع يعتمد على Go API Gateway لتنسيق الطلبات بين ثلاثة Worker Shards مستقلة مكتوبة بلغات Go وPython وNode.js، بحيث يمتلك كل Worker قاعدة بيانات SQL Server منفصلة.
يتولى الـ Master التحقق من الطلبات وتوجيه العمليات إلى الـ Shard المناسب باستخدام خوارزمية FNV-1a Hashing. وفي الاستعلامات التي لا تحتوي على مفتاح Shard، يستخدم النظام Scatter/Gather لتنفيذ الاستعلامات بالتوازي على العقد الثلاث وجمع النتائج.
يتضمن المشروع واجهات لإدارة قواعد البيانات والجداول، وتنفيذ عمليات CRUD، وتجميع النتائج باستخدام MapReduce-style Aggregation، بالإضافة إلى Health Checks وMetadata لمتابعة حالة العقد ومعلومات التوجيه.
كما يطبق النظام آلية تحقق من التوكن الداخلي بين الـ Gateway والـ Workers، بحيث تُرفض الطلبات المباشرة التي لا تحتوي على التوكن الصحيح. وصُمم الـ Master ليكون Stateless، مع إمكانية تجربة التحويل اليدوي إلى Master احتياطي.
يركز المشروع على تطبيق مفاهيم Distributed Systems وDatabase Sharding، وتصميم API Gateway، والتواصل بين الخدمات متعددة اللغات، وتنظيم الوصول إلى البيانات على عدة عقد مستقلة.
التقنيات: Go، Python، Flask، Node.js، Express، SQL Server، REST APIs، Database Sharding، API Gateway، Scatter/Gather، MapReduce.