24 dépôts
Architectural frameworks for managing services across network boundaries, focusing on decomposition and fault tolerance rather than local process management.
Explore 24 awesome GitHub repositories matching software engineering & architecture · Distributed Computing Paradigms. Refine with filters or upvote what's useful.
This repository serves as a comprehensive educational resource covering core computer science concepts, software engineering principles, and system architecture. It provides detailed explanations of fundamental data structures and algorithms, alongside in-depth analysis of database management systems, including transaction properties, storage engines, and concurrency control mechanisms. The collection also offers extensive documentation on the Java programming language, ranging from collection internals and memory management to concurrency primitives and object-oriented design patterns. Furth
Details distributed locking mechanisms essential for maintaining consistency across independent nodes in networked environments.
This project is an enterprise-grade Java framework designed for building scalable, full-stack e-commerce applications. It provides a comprehensive foundation for microservice-based distributed architectures, enabling the development of complex retail platforms that include product management, order processing, and secure user authentication. By leveraging modular service patterns and centralized API gateways, the framework supports the construction of resilient systems that decompose monolithic business logic into independent, manageable services. The platform distinguishes itself through a r
Facilitates the construction of resilient distributed systems through built-in service discovery, API gateways, and centralized configuration management.
This project is a community-driven educational repository that serves as a comprehensive directory of university-level computer science video lectures. It provides a structured learning path for students and professionals, aggregating high-quality academic resources to facilitate self-paced study across a wide range of technical disciplines. The repository distinguishes itself through a collaborative maintenance model, utilizing version control workflows to allow contributors to expand and update the collection. Content is organized within a single, version-controlled document that leverages
Highlights advanced coursework on designing systems that meet strict temporal performance requirements.
Spring Boot is an opinionated application framework designed to streamline the creation of production-ready services. It functions as a comprehensive development platform that utilizes a centralized dependency injection container to manage object lifecycles and wiring. By employing convention-over-configuration, the framework automates the instantiation of components based on the presence of specific libraries and configuration properties, significantly reducing the need for manual setup. The framework distinguishes itself by bundling the application and its web server into a single, self-con
Equips distributed services with built-in observability, health monitoring, and configuration management to ensure high reliability in production.
This project is a curated knowledge repository that aggregates high-quality resources, technical documentation, and expert insights focused on distributed systems engineering. It serves as a community-driven learning resource designed to help developers navigate the complexities of building and maintaining large-scale software applications. The repository distinguishes itself through a hierarchical taxonomy that organizes vast amounts of technical information into a structured, searchable format. By utilizing markdown-based content curation and static indexing, the collection remains version-
Details architectural frameworks and design paradigms essential for managing services across complex network boundaries.
This project is a community-driven repository of simplified, example-based reference guides for command-line tools. It functions as an open-source knowledge base designed to provide concise, practical usage examples that help developers navigate complex software without the need for lengthy technical documentation. The system relies on a decentralized architecture where independent client applications fetch and render documentation locally. This approach ensures that reference materials remain accessible offline while supporting a wide variety of user interfaces across desktop, mobile, and we
Supports a distributed architecture where independent client applications fetch and render documentation locally for the end user.
This project serves as a comprehensive knowledge base and reference for distributed systems engineering and enterprise software architecture. It provides a structured collection of technical resources, design patterns, and methodologies intended to assist in the design, maintenance, and scaling of complex, high-performance software environments. The repository distinguishes itself by offering deep dives into core architectural concepts such as actor-based concurrency, aspect-oriented interception, and inversion-of-control containers. It emphasizes the practical application of distributed syst
Master complex service communication, data consistency, and infrastructure management through a curated collection of architectural best practices.
MinIO is a software-defined, cloud-native object storage server designed to manage large volumes of unstructured data. It functions as a distributed storage cluster that aggregates multiple independent nodes into a unified, scalable pool, providing a high-performance infrastructure compatible with standard cloud storage protocols and application programming interfaces. The system utilizes a shared-nothing architecture that eliminates central metadata servers, relying instead on a decentralized hash table to map objects across the cluster. Data availability and resilience are maintained throug
Implements a decentralized architecture without a central metadata server to eliminate single points of failure.
Label Studio is a multi-modal data annotation platform designed to create and manage high-quality training datasets for machine learning. It functions as a self-hosted, containerized environment that supports secure, private deployments, including air-gapped configurations. The platform provides a centralized workspace for labeling diverse media types, such as images, text, audio, and time-series data, to support supervised and reinforcement learning workflows. The platform distinguishes itself through deep integration with machine learning backends, enabling active learning loops, automated
Packages the platform as a portable, containerized microservice for scalable deployment in cloud-native environments.
Kit is a microservices architectural framework and toolkit for Go. It provides a set of standardized primitives and abstractions for implementing service, endpoint, and transport layers in a decoupled manner. The framework focuses on system instrumentation through integrated distributed request tracing and a service instrumentation toolkit that utilizes counters and gauges to export performance data to external monitoring backends. It includes a structured logging library that records system events as key-value pairs to ensure compatibility with log aggregation tools. The project covers a br
Offers a comprehensive framework for implementing decoupled service, endpoint, and transport layers.
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
Maintains synchronized state across different databases and services using automated compensation and rollback logs.
Seata is a distributed transaction coordinator and consistency framework designed to maintain data integrity across multiple microservices. It functions as a manager that synchronizes state across separate databases to ensure atomic commits or rollbacks of global transactions. The project provides a toolkit for implementing distributed transaction patterns, using a two-phase commit protocol and centralized status tracking to prevent data anomalies. It orchestrates eventual consistency through state-machine-based tracking and message-driven coordination to handle timeouts and failures in distr
Provides a comprehensive framework for maintaining data consistency across microservices using distributed transaction patterns.
Go-micro is a distributed systems development toolkit designed for building, connecting, and managing modular microservices. It provides a comprehensive framework for service discovery, remote procedure call abstraction, and event-driven messaging, allowing developers to create decoupled architectures that communicate asynchronously through shared message brokers. The project distinguishes itself by integrating autonomous agent orchestration and language model tool binding directly into the service lifecycle. By exposing internal service endpoints as standardized tools, it enables AI agents t
Provides a modular toolkit for building and managing distributed microservices with pluggable transport.
This project provides a framework for managing multi-agent systems, designed to automate complex software development, infrastructure, and business workflows. It functions as a multi-agent workflow orchestrator that routes tasks to domain-specific workers while maintaining state persistence and infrastructure automation. By leveraging large language models, the system decomposes high-level objectives into actionable plans, ensuring that complex operations are executed with consistency and reliability. The framework distinguishes itself through its hierarchical agent registry and policy-driven
Evaluates system demands to support the architecture of real-time communication environments.
Gofr is a comprehensive framework for building production-ready microservices in Go. It provides a unified toolkit for developing RESTful APIs and gRPC services, offering built-in support for observability, database management, and distributed system communication. The framework distinguishes itself through its focus on developer productivity and system resilience. It automates common backend tasks such as CRUD handler generation, schema-driven code creation, and database migration orchestration, while preventing race conditions in clustered environments. To maintain stability, it includes in
A comprehensive toolkit for building production-ready microservices in Go with built-in support for REST, gRPC, observability, and database management.
Workflow is an asynchronous C++ task engine designed for building distributed systems and high-performance network services. It provides a framework for orchestrating complex sequences of network, file, and computational operations, allowing developers to compose these tasks into parallel workflows. The library functions as a toolkit for implementing scalable servers and clients for protocols such as HTTP, Redis, MySQL, and Kafka. It distinguishes itself through a task-based concurrency model that manages non-blocking operations and coordinates service discovery, load balancing, and traffic r
Facilitates the creation of scalable network services and manages complex communication patterns between microservices using task-based concurrency.
OTP is a concurrent programming framework and distributed computing platform that serves as the Erlang runtime environment. It provides a fault-tolerant operating environment designed for building scalable, real-time systems that manage massive amounts of simultaneous tasks through asynchronous messaging. The environment is distinguished by its use of an actor-based concurrency model and hierarchical supervision trees that automatically restart failed processes. It supports hot code loading to allow system updates without downtime and utilizes a preemptive user-space scheduler to manage light
Designed as a computing environment that responds to events within predictable timeframes for real-time workloads.
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
Provides a comprehensive framework for maintaining data integrity and synchronization across distributed services.
Twirp est un framework RPC Protocol Buffers conçu pour implémenter une communication de microservices distribués typée et sécurisée via HTTP. Il fonctionne comme un framework de communication de microservices et un générateur de code API qui produit des stubs clients et des interfaces serveur fortement typés à partir de définitions de schéma pour éliminer le boilerplate réseau manuel. Le framework assure la compatibilité avec l'infrastructure web existante en exécutant des appels de procédure distante (RPC) sur le transport HTTP standard. Il utilise des contrats basés sur des schémas comme source unique de vérité pour permettre l'interopérabilité entre les langages et découpler la logique métier du transport réseau. Le système couvre plusieurs domaines de capacités de base, incluant le routage piloté par interface, la sérialisation de données multi-formats prenant en charge à la fois JSON et binaire, et des middlewares de cycle de vie de requête pour les préoccupations transversales. Il fournit également un système de mappage d'erreurs standardisé pour traduire les échecs de service en codes lisibles par machine et inclut des outils pour la vérification de la compatibilité client.
Provides a framework for building lightweight, production-ready distributed microservices using structured data exchange.
Ce projet est un framework de microservices pour construire des systèmes backend scalables en Go. Il fournit une architecture pour les systèmes distribués avec une prise en charge intégrée de la découverte de services, de l'équilibrage de charge et des mécanismes de tolérance aux pannes. Le framework se distingue par une architecture en couches pilotée par le domaine et un système de configuration orienté distant qui synchronise les paramètres entre les magasins distants et les fichiers locaux avec basculement automatique. Il implémente un modèle de communication haute performance utilisant gRPC pour l'échange de données unaires et en streaming, ainsi que des systèmes de notification en temps réel pour gérer les connexions clients persistantes. Le système couvre un large éventail de capacités distribuées, notamment la gestion du trafic via le circuit breaking et la limitation de débit (rate limiting), ainsi que l'observabilité via le traçage distribué, la journalisation centralisée et la surveillance de la santé. Il intègre également des outils d'infrastructure de données tels que les filtres de Bloom probabilistes, le verrouillage distribué et l'authentification de service basée sur des jetons. Le projet inclut une prise en charge du déploiement pour les environnements Elasticsearch et HBase conteneurisés.
Provides a comprehensive framework for building resilient, production-ready distributed microservices in Go.