8 repositorios
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.
Este proyecto es un recurso educativo integral y una guía de estudio centrada en la arquitectura de sistemas distribuidos y el diseño de infraestructura backend. Proporciona un plan de estudios estructurado para dominar los principios de escalabilidad, confiabilidad y rendimiento necesarios para diseñar sistemas de software complejos. El repositorio se distingue por ofrecer un enfoque metódico para la preparación de entrevistas técnicas, incorporando patrones de diseño, compensaciones arquitectónicas y herramientas de repetición espaciada para ayudar a los usuarios a retener conceptos complejos. Enfatiza el análisis basado en restricciones, enseñando a los usuarios cómo evaluar requisitos competitivos como latencia, consistencia y disponibilidad al redactar diseños arquitectónicos. El contenido cubre un amplio espectro de capacidades de diseño de sistemas, incluyendo estrategias para el escalado de bases de datos, gestión de tráfico y optimización de infraestructura. Detalla técnicas para el escalado horizontal, almacenamiento en caché multicapa, comunicación asíncrona y descubrimiento de servicios, al tiempo que proporciona marcos para realizar estimaciones de recursos y planificación de capacidad. La documentación está organizada como una guía de estudio, ofreciendo un camino sistemático a través de los fundamentos de la ingeniería backend y el diseño de sistemas a gran escala.
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 es un framework de transacciones distribuidas y orquestador de flujos de trabajo diseñado para gestionar la consistencia de datos a través de microservicios. Funciona como un coordinador centralizado que sincroniza transacciones distribuidas y gestiona el estado y el flujo de ejecución de secuencias complejas de tareas distribuidas. El framework implementa varios patrones de coordinación, incluyendo Saga, TCC y XA, para evitar errores de sincronización. Proporciona específicamente un coordinador de transacciones multilenguaje para sincronizar operaciones a través de servicios escritos en diferentes lenguajes de programación y utiliza un outbox de mensajería fiable para acoplar las actualizaciones de la base de datos con el envío de mensajes. Su superficie de capacidades cubre la recuperación de sistemas distribuidos mediante reversiones de transacciones compensatorias, coordinación de confirmación en dos fases (2PC) y entrega de mensajes exactamente una vez. La infraestructura admite la expansión de capacidad horizontal y configuraciones de alta disponibilidad para mantener la estabilidad a medida que aumentan los volúmenes de solicitudes.
Automatically invokes compensating operations for sub-transactions to restore system consistency after a failure.
Este proyecto es una implementación de referencia de patrones de Domain-Driven Design, modelado de dominio funcional y coordinación de estado basada en eventos. Demuestra la aplicación de patrones de diseño estratégicos y tácticos para gestionar requisitos de negocio complejos. La implementación utiliza un modelo de dominio funcional con funciones puras y objetos inmutables para gestionar transiciones de estado y efectos secundarios. Cuenta con una arquitectura de Segregación de Responsabilidad de Comandos y Consultas (CQRS) para separar modelos de lectura y escritura, junto con coordinación basada en eventos para mantener la consistencia a través de límites de negocio autónomos. La base de código incorpora una arquitectura de monolito modular utilizando contextos delimitados (bounded contexts) y capas hexagonales para aislar la lógica central de la infraestructura. El aseguramiento de la calidad se maneja a través de una suite de desarrollo guiado por comportamiento (BDD) que refleja el lenguaje ubicuo para verificar escenarios de negocio y pruebas automatizadas que aplican restricciones arquitectónicas. El proyecto aplica estos patrones a un dominio de gestión de bibliotecas, cubriendo el mantenimiento del catálogo de libros, flujos de trabajo de circulación, validaciones de reservas y seguimiento de préstamos vencidos.
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.
Este proyecto es una plataforma de aprendizaje y guía de estudio centrada en los principios de los sistemas distribuidos y la arquitectura de software. Proporciona una colección de escenarios arquitectónicos y declaraciones de problemas técnicos diseñados para ayudar a los ingenieros a practicar el diseño de sistemas, la planificación de capacidad y el análisis de compensaciones para servicios de alta escala. El repositorio se distingue por ofrecer prototipos funcionales y modelos para desafíos de ingeniería complejos. En lugar de proporcionar documentación puramente teórica, incluye representaciones ejecutables de componentes del sistema —como servicios de almacenamiento, balanceadores de carga y mecanismos de control de concurrencia— que permiten a los usuarios validar la lógica arquitectónica, medir el rendimiento y observar cómo las diferentes opciones de diseño impactan el rendimiento del sistema y la consistencia de los datos. El contenido cubre una amplia gama de preocupaciones de infraestructura y nivel de aplicación, incluyendo diseño de esquemas de bases de datos, gestión de colas de mensajes, sincronización de estado en tiempo real e indexación espacial. También aborda requisitos operativos como la distribución del tráfico, la optimización del acceso a recursos y el monitoreo, proporcionando un framework integral para comprender cómo construir sistemas de software duraderos, disponibles y escalables.
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.