8 dépôts
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.
Ce projet est une ressource éducative et un guide d'étude complet axé sur l'architecture des systèmes distribués et la conception d'infrastructures backend. Il fournit un programme structuré pour maîtriser les principes de scalabilité, de fiabilité et de performance requis pour concevoir des systèmes logiciels complexes. Le dépôt se distingue en offrant une approche méthodique de la préparation aux entretiens techniques, intégrant des modèles de conception, des compromis architecturaux et des outils de répétition espacée pour aider les utilisateurs à retenir des concepts complexes. Il met l'accent sur l'analyse axée sur les contraintes, enseignant aux utilisateurs comment évaluer des exigences concurrentes comme la latence, la cohérence et la disponibilité lors de l'élaboration de conceptions architecturales. Le contenu couvre un large spectre de capacités de conception de systèmes, notamment des stratégies pour la mise à l'échelle des bases de données, la gestion du trafic et l'optimisation de l'infrastructure. Il détaille des techniques pour la mise à l'échelle horizontale, la mise en cache multicouche, la communication asynchrone et la découverte de services, tout en fournissant des cadres pour effectuer des estimations de ressources et la planification de la capacité. La documentation est organisée comme un guide d'étude, offrant un chemin systématique à travers les fondamentaux de l'ingénierie backend et de la conception de systèmes à grande échelle.
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 is a distributed transaction framework and workflow orchestrator designed to manage data consistency across microservices. It functions as a centralized coordinator that synchronizes distributed transactions and manages the state and execution flow of complex sequences of distributed tasks. The framework implements several coordination patterns, including Saga, TCC, and XA, to prevent synchronization errors. It specifically provides a multi-language transaction coordinator to synchronize operations across services written in different programming languages and utilizes a reliable messagin
Automatically invokes compensating operations for sub-transactions to restore system consistency after a failure.
Ce projet est une implémentation de référence des design patterns Domain-Driven Design, de la modélisation de domaine fonctionnelle et de la coordination d'état pilotée par les événements. Il démontre l'application de design patterns stratégiques et tactiques pour gérer des exigences métier complexes. L'implémentation utilise un modèle de domaine fonctionnel avec des fonctions pures et des objets immuables pour gérer les transitions d'état et les effets de bord. Il dispose d'une architecture Command Query Responsibility Segregation (CQRS) pour séparer les modèles de lecture et d'écriture, ainsi qu'une coordination pilotée par les événements pour maintenir la cohérence à travers les limites métier autonomes. La base de code intègre une architecture monolithique modulaire utilisant des contextes bornés (bounded contexts) et un découpage hexagonal pour isoler la logique centrale de l'infrastructure. L'assurance qualité est gérée via une suite de développement piloté par le comportement (BDD) qui reflète le langage omniprésent pour vérifier les scénarios métier et des tests automatisés qui imposent des contraintes architecturales. Le projet applique ces patterns à un domaine de gestion de bibliothèque, couvrant la maintenance du catalogue de livres, les flux de travail de circulation, les validations de réservation et le suivi des retours en retard.
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.
Ce projet est une plateforme d'apprentissage et un guide d'étude axé sur les principes des systèmes distribués et de l'architecture logicielle. Il fournit une collection de scénarios architecturaux et d'énoncés de problèmes techniques conçus pour aider les ingénieurs à pratiquer la conception système, la planification de capacité et l'analyse des compromis pour les services à haute échelle. Le dépôt se distingue en offrant des prototypes fonctionnels et des modèles pour des défis d'ingénierie complexes. Plutôt que de fournir une documentation purement théorique, il inclut des représentations exécutables de composants système — tels que des services de stockage, des équilibreurs de charge et des mécanismes de contrôle de concurrence — qui permettent aux utilisateurs de valider la logique architecturale, de mesurer les performances et d'observer comment différents choix de conception impactent le débit du système et la cohérence des données. Le contenu couvre un large éventail de préoccupations d'infrastructure et de niveau application, incluant la conception de schémas de base de données, la gestion de files d'attente de messages, la synchronisation d'état en temps réel et l'indexation spatiale. Il aborde également les exigences opérationnelles comme la distribution du trafic, l'optimisation de l'accès aux ressources et la surveillance, fournissant un framework complet pour comprendre comment construire des systèmes logiciels durables, disponibles et évolutifs.
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.