29 dépôts
Mechanisms for handling background tasks and inter-process events without blocking the main execution thread.
Distinguishing note: Focuses on architectural patterns for non-blocking communication rather than specific network protocols.
Explore 29 awesome GitHub repositories matching software engineering & architecture · Asynchronous Messaging. 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.
Explains architectural patterns for handling background tasks without blocking the main execution thread.
This project is a comprehensive directory of open-source iOS applications designed to serve as a technical reference for developers and learners. It functions as a curated index of mobile software, categorizing projects by their functionality, implementation language, and architectural design to provide a clear view of how professional applications are structured. The repository distinguishes itself by offering a deep dive into mobile app architecture, allowing users to study real-world codebases that utilize patterns such as Model-View-ViewModel, VIPER, and Clean Architecture. It highlights
Implements non-blocking communication patterns for background task management and event handling.
YouCompleteMe is a completion engine and semantic code analyzer for the Vim editor. It provides an integrated suite of development tools, including a Language Server Protocol client and a semantic analyzer that utilizes Clang to offer context-aware symbols and type-based highlighting. The project distinguishes itself through specialized semantic completion for C-family languages and JavaScript, offering identifiers, snippets, and automatic imports. It provides advanced visual feedback such as inlay hints for type information and parameter names, as well as semantic highlighting based on the a
Implements non-blocking message processing to ensure the editor interface remains responsive during heavy code analysis.
Letta is a framework for building, deploying, and managing autonomous AI agents that maintain persistent state across long-term interactions. It provides a comprehensive suite of primitives for defining agents with configurable personas, modular memory blocks, and tool-use capabilities, enabling them to retain user preferences and conversation history over extended sessions. The platform distinguishes itself through its advanced memory management and orchestration capabilities. It allows agents to autonomously update their own memory, perform retrieval-augmented generation, and coordinate com
Processes agent messages asynchronously to allow non-blocking background execution and status tracking.
Ava is a test runner for JavaScript and TypeScript designed to execute test suites with a focus on concurrency and isolation. It serves as a concurrent test executor that runs test files in parallel across multiple processes to reduce total runtime and prevent state leakage between suites. The project features a built-in snapshot testing framework that saves large data structures to disk and compares subsequent executions to detect regressions via diffs. It is also compatible with the Test Anything Protocol, allowing it to export results for use with external reporting tools. Its capability
Implements non-blocking communication for coordinating tasks between the main process and test worker processes.
NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t
Implements non-blocking, event-driven message reception via callback handlers for efficient processing.
react-native-windows is a framework and rendering system used to build native desktop applications for Windows using React. It functions as an extension that brings a mobile-first development model to the Windows desktop environment, mapping React components directly to native Windows interface elements. The project enables the creation of desktop software through a declarative component-based architecture. It integrates React Native projects into the Windows ecosystem by translating components into native user interface elements rather than using web views. The framework covers cross-platfo
Implements an asynchronous message queue to ensure non-blocking communication between the JavaScript engine and the native Windows host.
Pinpoint is a distributed application performance monitoring and tracing system. It functions as an application performance monitor and topology visualizer designed to analyze the execution behavior of large-scale distributed applications. The system uses bytecode instrumentation to monitor applications without requiring changes to the original source code. It captures call stacks and request flows across interconnected services to visualize system dependencies and generate real-time architectural maps of communication patterns. The platform covers a broad range of observability capabilities
Uses asynchronous messaging to queue trace data locally, preventing monitoring overhead from impacting application performance.
PeerJS is a real-time communication library and framework designed to establish direct peer-to-peer data and media connections between browsers. It provides a simplified wrapper for managing the lifecycles of WebRTC connectivity, enabling the exchange of audio, video, and data without a central relay. The project includes a coordination server that handles signaling management by mapping unique user identities to network connection details. This server facilitates the discovery of remote peers and the exchange of metadata required to perform the initial connection handshake. The framework su
Implements a non-blocking communication model for transmitting data packets and media streams between peers.
Nyxt is a keyboard-driven web browser built on a programmable Common Lisp architecture. It is designed for users who require a highly extensible environment where core behaviors and internal functions can be modified during active sessions. By prioritizing keyboard navigation and a command-based interface, the browser facilitates efficient interaction with web content and system functions. The browser distinguishes itself through a non-linear, tree-structured history graph that preserves the context of navigation paths, allowing users to explore past visits without losing their current place.
Implements an event-driven message bus to decouple internal components and prevent interface blocking.
Quantaxis is a quantitative trading framework designed for building, backtesting, and executing automated strategies across global equities, futures, and cryptocurrencies. It integrates an event-driven backtesting engine, a multi-market execution gateway for order routing, and a quantitative data pipeline for ingesting and storing multi-asset market data. The system features a Rust-accelerated financial library that utilizes Apache Arrow for high-performance technical indicator calculation and zero-copy data processing. It provides a containerized infrastructure model designed for orchestrati
Implements non-blocking architectural patterns for routing high-volume data between system components.
Watermill is a Go library for building event-driven applications. It provides a framework for implementing event-driven architectures through a consistent interface for message publishing and subscribing, featuring a pub/sub message router and event stream processing pipelines. The library uses interface-based abstractions to decouple message producers and consumers from the underlying message broker. This allows different messaging technologies to be swapped via plugin-based broker integration. It employs a router-driven dispatch system and middleware-based pipelines to manage cross-cutting
Handles high-volume event streams by decoupling message reception from execution using non-blocking Go channels.
This repository contains the HTML specification, which defines the core standards for web page structuring, content organization, and document rendering. It establishes the fundamental algorithms for state-machine-based tokenization, tree construction for the document object model, and origin-based security isolation. The specification provides a framework for defining custom elements with independent lifecycles and registries. It also details the requirements for cross-document communication, session history management, and the synchronization of interface properties with content attributes.
Provides the mechanism for processing incoming asynchronous data from WebSockets and server-sent events.
This project is a conversational AI software development kit and framework used to build interactive chatbots that engage in natural language conversations and execute tasks for end users. It provides a multi-channel bot framework that connects conversational agents to various external messaging services using standardized adapters. The SDK includes a conversational workflow orchestrator and a natural language processing toolkit for analyzing user intent and extracting entities to route conversation flows. It further incorporates a speech integration framework that enables bidirectional audio
Uses an event-driven asynchronous messaging model to handle bi-directional communication between clients and servers.
MassTransit is a .NET distributed application framework and asynchronous messaging library designed for building distributed systems. It serves as an enterprise service bus implementation that handles the routing, transformation, and delivery of messages between decoupled services. The framework provides a message broker abstraction layer, which decouples application code from specific messaging infrastructure such as RabbitMQ, Azure Service Bus, or Amazon SQS. It supports event-driven architecture and asynchronous microservices communication to improve system scalability and availability. T
Enables asynchronous messaging to decouple distributed services and improve overall system scalability.
Aidea est un client IA multi-plateforme et un projet d'infrastructure auto-hébergé. Il se compose d'une application Flutter et d'un système backend conteneurisé conçu pour fournir une interface unifiée pour interagir avec de grands modèles de langage et des services de génération d'images par IA. Le projet fonctionne comme une passerelle IA auto-hébergée, permettant aux utilisateurs de gérer et de déployer des instances privées de modèles de langage et d'image sur leur propre matériel. Cette architecture permet le routage de diverses requêtes de données via une passerelle API standardisée vers plusieurs fournisseurs d'IA tout en conservant le contrôle sur le stockage des données et la configuration du serveur. Le système couvre les flux de travail conversationnels, la diffusion texte-vers-image et le traitement de flux asynchrone. Il utilise une base de code unique pour rendre une interface utilisateur cohérente sur les environnements mobiles, bureau et web, soutenue par une orchestration de service basée sur des conteneurs pour le backend.
Uses a non-blocking architectural pattern to process AI prompts and stream results in the background.
nvim-dap is a Neovim plugin that serves as a client implementation of the Debug Adapter Protocol. It provides a language-agnostic debugger interface that integrates external debugger binaries into the editor, allowing users to manage breakpoints and step through code. The project enables remote process debugging by attaching to running processes or containerized applications via TCP sockets and network proxies. It supports connecting to debug adapters through standard input/output or TCP, with specialized support for launching and attaching to Java processes. The plugin covers program execut
Implements non-blocking communication to ensure the editor interface remains responsive during active debug sessions.
fio est un outil de benchmarking de performance de stockage et un générateur de charges de travail I/O synthétiques. Il fonctionne comme un profileur de périphériques de stockage et un moteur de rejeu de traces I/O, permettant de mesurer le débit et la latence des périphériques de stockage et des systèmes de fichiers. Le projet se distingue par sa capacité à agir comme un testeur de stress de stockage distribué, gérant plusieurs backends de serveurs distants via un contrôleur unique pour évaluer le stockage réseau. Il inclut également des capacités spécialisées pour l'analyse de déduplication de stockage en générant des tampons de données redondants pour tester l'efficacité des sous-systèmes de déduplication. L'outil couvre un large éventail de capacités, incluant la simulation de charges de travail I/O complexes avec des tailles de blocs et une profondeur I/O contrôlables, l'analyse de l'inactivité CPU et la collecte de statistiques sur les périphériques. Il offre une observabilité via la visualisation des métriques de performance, des histogrammes de latence et un monitoring en régime permanent. Les charges de travail peuvent être déclenchées via des arguments en ligne de commande ou des fichiers de configuration détaillés pour automatiser des scénarios de benchmarking complexes.
Uses circular buffers to facilitate non-blocking communication between worker threads and the main control path.
Ce projet est un guide complet de préparation aux entretiens techniques et une base de connaissances en informatique. Il sert de ressource d'étude structurée conçue pour aider les ingénieurs logiciels à réviser les concepts d'ingénierie fondamentaux et à se préparer aux évaluations de codage professionnelles. Le dépôt se concentre sur un large éventail de domaines théoriques et pratiques, incluant des références détaillées sur l'architecture des applications mobiles et les fondamentaux des systèmes d'exploitation. Il fournit des matériaux sélectionnés sur les modèles d'architecture logicielle et l'analyse des protocoles réseau pour soutenir le développement professionnel. Le contenu couvre des capacités fondamentales telles que les structures de données et les algorithmes, la concurrence et le multithreading, et la gestion de la mémoire. Il inclut également des approfondissements sur l'architecture système, notamment la planification des processus, la communication inter-processus et l'optimisation du rendu UI.
Describes architectural patterns for non-blocking message processing to maintain UI responsiveness.
Ce projet est une implémentation de référence et un plan architectural pour construire des systèmes distribués en utilisant le framework go-zero. Il fournit un boilerplate complet de microservices et une structure de projet standardisée pour amorcer des services API et RPC avec des structures de dossiers cohérentes. L'implémentation se distingue en fournissant un guide complet et une base de code pour la découverte de services, la limitation de débit (rate limiting) et le disjoncteur (circuit breaking). Elle démontre une intégration de stack d'observabilité qui coordonne le traçage distribué, la collecte de métriques et la journalisation centralisée à travers plusieurs microservices. Le système couvre un large éventail de capacités distribuées, incluant la messagerie asynchrone via un modèle de publication-abonnement, la gestion de transactions distribuées pour la cohérence des données et un modèle d'agrégation de passerelle pour séparer les requêtes externes de la communication interne. Il inclut également la génération automatique de code à partir de définitions et des pipelines de livraison continue pour le déploiement de conteneurs.
Implements architectural patterns for non-blocking asynchronous messaging and pub-sub service communication.