8 مستودعات
Strategies for managing state, consistency, and data synchronization in distributed architectures.
Distinguishing note: Focuses on data-centric architectural patterns like CQRS and Event Sourcing rather than general system design.
Explore 8 awesome GitHub repositories matching software engineering & architecture · Data Consistency Models. Refine with filters or upvote what's useful.
هذا المشروع عبارة عن مورد تعليمي شامل ودليل دراسي يركز على بنية الأنظمة الموزعة وتصميم البنية التحتية للـ backend. يوفر منهجاً منظماً لإتقان مبادئ القابلية للتوسع، والموثوقية، والأداء المطلوبة لتصميم أنظمة برمجية معقدة. يتميز المستودع بتقديم نهج منهجي للتحضير للمقابلات التقنية، حيث يدمج أنماط التصميم، والمقايضات المعمارية، وأدوات التكرار المتباعد لمساعدة المستخدمين على الاحتفاظ بالمفاهيم المعقدة. ويؤكد على التحليل القائم على القيود، حيث يعلم المستخدمين كيفية تقييم المتطلبات المتنافسة مثل زمن الوصول (latency)، والاتساق، والتوافر عند صياغة التصاميم المعمارية. يغطي المحتوى طيفاً واسعاً من قدرات تصميم النظام، بما في ذلك استراتيجيات توسيع قواعد البيانات، وإدارة حركة المرور، وتحسين البنية التحتية. ويفصل تقنيات التوسع الأفقي، والتخزين المؤقت متعدد الطبقات، والتواصل غير المتزامن، واكتشاف الخدمات، مع توفير أطر عمل لإجراء تقديرات الموارد وتخطيط السعة. يتم تنظيم التوثيق كدليل دراسي، مما يوفر مساراً منهجياً عبر أساسيات هندسة الـ backend وتصميم الأنظمة واسعة النطاق.
Covers strategies for managing state, consistency, and data synchronization in distributed architectures.
This project is a comprehensive educational resource focused on the principles, patterns, and trade-offs required to design scalable, reliable, and high-performance distributed systems. It provides a structured curriculum that covers the fundamental architectural strategies necessary for building modern software infrastructure, ranging from high-level system decomposition to low-level networking and data management. The repository distinguishes itself by offering deep dives into complex architectural patterns, such as microservices-based decomposition, event-driven communication, and command-
The CQRS pattern is often used along with the Event Sourcing pattern. CQRS-based systems use separate read and write data models, each tailored to relevant tasks and often located in physically separate stores. When used
Seata is a distributed transaction coordinator designed to ensure data consistency and atomicity across microservices. It provides a centralized framework for managing global transactions, preventing partial data updates across different databases and services. The project implements multiple transaction modes to balance consistency and performance. This includes an automatic mode that uses rollback logs to coordinate compensation without modifying business logic, a try-confirm-cancel pattern for resources lacking native ACID support, and a saga orchestration engine for managing long-lived bu
Ensures data consistency in relational databases by automatically applying compensation operations during global rollbacks.
dtm هو إطار عمل للمعاملات الموزعة ومنسق لتدفق العمل مصمم لإدارة اتساق البيانات عبر الخدمات المصغرة. يعمل كمنسق مركزي يقوم بمزامنة المعاملات الموزعة ويدير الحالة وتدفق التنفيذ لتسلسلات معقدة من المهام الموزعة. ينفذ إطار العمل العديد من أنماط التنسيق، بما في ذلك Saga وTCC وXA، لمنع أخطاء المزامنة. ويوفر بشكل خاص منسق معاملات متعدد اللغات لمزامنة العمليات عبر الخدمات المكتوبة بلغات برمجة مختلفة ويستخدم صندوق بريد صادر (outbox) موثوق للرسائل لربط تحديثات قاعدة البيانات بإرسال الرسائل. تغطي قدراته استعادة الأنظمة الموزعة من خلال عمليات التراجع (rollbacks) للمعاملات التعويضية، وتنسيق الالتزام ثنائي المرحلة، وتسليم الرسائل لمرة واحدة بالضبط. وتدعم البنية التحتية التوسع الأفقي في السعة وتكوينات التوافر العالي للحفاظ على الاستقرار مع زيادة أحجام الطلبات.
Automatically invokes compensating operations for sub-transactions to restore system consistency after a failure.
هذا المشروع عبارة عن تنفيذ مرجعي لأنماط التصميم الموجه بالمجال (Domain-Driven Design)، ونمذجة المجال الوظيفي، وتنسيق الحالة المدفوع بالأحداث. يوضح تطبيق أنماط التصميم الاستراتيجية والتكتيكية لإدارة متطلبات العمل المعقدة. يستخدم التنفيذ نموذج مجال وظيفي مع وظائف نقية وكائنات غير قابلة للتغيير لإدارة انتقالات الحالة والآثار الجانبية. ويتميز ببنية فصل مسؤولية الأمر والاستعلام (CQRS) لفصل نماذج القراءة والكتابة، إلى جانب التنسيق المدفوع بالأحداث للحفاظ على الاتساق عبر حدود العمل المستقلة. تتضمن قاعدة الكود بنية متجانسة معيارية باستخدام سياقات محدودة وطبقات سداسية لعزل المنطق الأساسي عن البنية التحتية. تتم إدارة ضمان الجودة من خلال مجموعة تطوير مدفوعة بالسلوك تعكس اللغة الشائعة للتحقق من سيناريوهات العمل والاختبارات المؤتمتة التي تفرض قيوداً معمارية. يطبق المشروع هذه الأنماط على مجال إدارة المكتبة، ويغطي صيانة كتالوج الكتب، وسير عمل التداول، وعمليات التحقق من الحجز، وتتبع عمليات الخروج المتأخرة.
Implements immediate and eventual consistency mechanisms to maintain data integrity across different business boundaries.
InterviewGuide is a comprehensive technical interview preparation platform that covers the full spectrum of software engineering recruitment, from foundational computer science concepts through to offer negotiation. It provides structured learning paths across algorithms, operating systems, databases, networking, and programming languages, with a particular emphasis on C++ and Go. The platform aggregates real interview experiences and company-specific questions from major tech employers, offering candidates a searchable database of past written exam problems and detailed accounts of actual int
Covers data consistency models including strong, weak, and eventual consistency for distributed systems.
This project is a learning platform and study guide focused on the principles of distributed systems and software architecture. It provides a collection of architectural scenarios and technical problem statements designed to help engineers practice system design, capacity planning, and trade-off analysis for high-scale services. The repository distinguishes itself by offering functional prototypes and models for complex engineering challenges. Rather than providing purely theoretical documentation, it includes executable representations of system components—such as storage services, load bala
Implements storage and locking strategies to maintain state integrity and prevent deadlocks in distributed systems.
Commanded is an Elixir framework designed for building event-sourced applications that utilize domain-driven design. It provides a structured environment for implementing command-query responsibility segregation, allowing developers to separate write-side command processing from read-side data projection. By treating state changes as an immutable sequence of events, the framework ensures a reliable audit trail and facilitates system recovery. The project distinguishes itself through its support for distributed process orchestration and event-driven middleware pipelines. It enables the managem
Updates read models before command dispatch returns to ensure applications can query the most recent state.