28 dépôts
Systems for defining and controlling the number and grouping of worker processes across different environments.
Distinct from Worker Process Management: Existing candidates are focused on testing orchestration or hardware tuning; this is for general background job worker scaling.
Explore 28 awesome GitHub repositories matching devops & infrastructure · Worker Process Management. Refine with filters or upvote what's useful.
Sidekiq is a background job processor and queue manager for Ruby that uses Redis to manage asynchronous tasks. It functions as a distributed task scheduler capable of handling periodic, delayed, and recurring jobs across a cluster of worker processes. The project features a job monitoring dashboard and administrative web interface for visualizing system state, tracking worker performance, and managing failed or dead jobs. It provides a distributed rate limiter to control execution frequency across multiple processes. The framework covers a broad range of operational capabilities, including j
Manages a swarm of child processes to maximize CPU utilization across a single machine.
Piku is a git-based platform-as-a-service deployment tool for self-hosted application hosting. It enables the deployment of multiple web applications and background workers to private servers by automating builds and updates through git push. The system acts as an application process orchestrator and reverse proxy server manager, routing incoming HTTP traffic to specific application processes. It features a multi-language application runtime that detects programming languages from repository files to handle dependency installation and execution settings. Security is handled via an integrated
Manages the lifecycle and scaling of web servers and background workers using a process configuration file.
Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis
Distributes events between parallel processing tasks using round-robin, isolated, or partitioned routing.
This project is a PHP application server and process manager designed to reduce request latency by keeping applications resident in memory. It functions as a load balancer that distributes incoming network requests across a pool of worker processes, eliminating the overhead of repetitive bootstrapping. The server routes network requests directly into application framework kernels, bypassing traditional web server layers. It includes a built-in mechanism for delivering static assets directly to clients and supports hot reloading by monitoring source files for changes and automatically restarti
Controls pools of worker processes to optimize resource utilization and application throughput.
Evio est une bibliothèque réseau haute performance pour Go qui fournit un framework de socket non bloquant. Il utilise une boucle d'événements pour traiter le trafic de sockets TCP, UDP et de domaine Unix via une interface de protocole asynchrone de bas niveau. Le projet fonctionne comme un équilibreur de charge réseau multi-cœur, distribuant les connexions sur plusieurs cœurs CPU en utilisant des stratégies round-robin ou de moindre connexion. Il prend en charge la réutilisation de socket, permettant à plusieurs sockets sur un seul hôte de se lier au même port. La bibliothèque couvre un large éventail de capacités de gestion de socket et de traitement de paquets, incluant l'écoute multi-protocole sur un seul port et le service multi-interface. La performance est optimisée par l'allocation de paquets à tampon partagé et un cycle de vie de connexion piloté par rappel pour minimiser la surcharge mémoire et la latence. Le système inclut également des utilitaires pour la planification de tâches périodiques afin de déclencher des événements d'arrière-plan récurrents ou des battements de cœur système.
Implements a system for distributing network connections across multiple CPU cores using round-robin scheduling.
Implementation of a bulletproof node.js API 🛡️
Spreads incoming connections across multiple worker processes using round-robin load balancing.
Vibora est un framework web Python asynchrone et un serveur HTTP intégré conçu pour construire des applications web haute performance. Il utilise une boucle d'événements asynchrone et des coroutines pour traiter les requêtes réseau et servir les réponses sans nécessiter de wrappers de serveur externes. Le projet propose un validateur de schéma asynchrone haute performance pour l'intégrité des requêtes, un moteur de template non bloquant avec prise en charge du rechargement à chaud, et un serveur de communication WebSocket pour l'échange de données bidirectionnel en temps réel. Le framework couvre un large éventail de capacités, notamment la gestion modulaire des routes via des blueprints, l'injection de dépendances pour les composants d'application et l'analyse HTTP zéro-copie. Il fournit également des outils pour la gestion des sessions utilisateur, le rendu HTML asynchrone et un client HTTP non bloquant avec pooling de connexions. Une interface en ligne de commande est disponible pour le bootstrapping de projet afin de générer des structures de répertoire standardisées et des fichiers de configuration initiaux.
Uses a connection reaper to detect unresponsive worker processes and automatically recover failed connections.
Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer
Provides real-time visibility into connection status, heartbeat activity, and versioning for worker health.
Buildbot est un framework d'intégration continue (CI) basé sur Python et un orchestrateur de build distribué. Il fonctionne comme un moteur d'automatisation de build qui coordonne la récupération du code source, l'exécution des étapes de build et le reporting des résultats via un contrôleur central et un réseau d'agents de travail distants. Le système se distingue par une architecture d'extensibilité basée sur des plugins et un modèle de distribution maître-esclave. Il permet la modification dynamique des builds au runtime et supporte un backend de base de données enfichable pour persister l'état du système et l'historique des builds. Le projet couvre un large éventail de capacités, incluant la planification automatisée des builds et l'orchestration de pipelines, l'intégration au contrôle de version via polling et webhooks, et le provisionnement de workers sur des serveurs physiques, des conteneurs Docker et des clusters Kubernetes. Il offre également une surveillance et une observabilité complètes via l'analyse des logs de build et le suivi des performances, ainsi qu'une gestion sécurisée des secrets et une authentification multi-fournisseur. Le contrôle administratif est disponible via une interface web dédiée et des outils en ligne de commande pour la validation de configuration et la gestion des processus.
Monitors worker connectivity and sends notifications when agents remain offline.
Ce projet est un ensemble de guides de configuration et de tutoriels pédagogiques pour configurer Nginx en tant que serveur web et reverse proxy. Il fournit des exemples pratiques pour héberger des fichiers statiques et diriger le trafic réseau vers des serveurs backend. Les supports couvrent l'implémentation de l'équilibrage de charge en utilisant des stratégies round-robin pondérées pour distribuer le trafic à travers des clusters de serveurs. Il fournit également des conseils sur la configuration des reverse proxies pour gérer le flux de requêtes et sécuriser l'accès aux applications. La documentation inclut des instructions pour router les requêtes par chemin d'URL afin d'héberger plusieurs applications sur un seul domaine et gérer les en-têtes de partage de ressources inter-origines (CORS). De plus, elle couvre la configuration de serveurs de fichiers pour exposer des répertoires locaux pour le téléchargement et la visualisation d'assets statiques.
Provides tutorials on using weighted round-robin strategies to balance traffic across clusters.
Tsuru est une plateforme en tant que service (PaaS) open-source pour automatiser la construction, le déploiement et la mise à l'échelle d'applications conteneurisées. Il fonctionne comme un moteur de déploiement basé sur des conteneurs et une couche de gestion pour Kubernetes, transformant le code source en images de conteneurs et coordonnant leurs cycles de vie. La plateforme est conçue pour la gestion d'infrastructure multi-cloud, permettant aux applications d'être distribuées à travers différents fournisseurs cloud et régions pour augmenter la résilience. Elle présente un modèle de déploiement flexible qui prend en charge les conteneurs multi-processus, permettant à un seul dépôt d'exécuter différents composants, tels que des serveurs web et des workers en arrière-plan, simultanément. Les domaines de capacités incluent le provisionnement de services gérés pour lier les applications à des bases de données externes et des courtiers de messages, ainsi qu'une gestion complète des identités utilisant OAuth et SAML. Le système fournit également des outils pour le contrôle d'accès des équipes via des permissions hiérarchiques, des quotas de ressources et le routage automatique du trafic. La plateforme peut être installée et configurée sur un cluster Kubernetes en utilisant des charts Helm.
Supports running different components, such as web servers and background workers, simultaneously from a single repository.
FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified abstraction layer for interacting with various message brokers, enabling developers to manage event production and consumption through a consistent interface while maintaining access to native provider-specific features. The framework centers on a decorator-based routing model that binds application logic directly to broker topics, supported by a built-in dependency injection container that resolves resources at runtime. The framework distinguishes itself through its deep int
Distributes incoming messages across multiple service instances using round-robin logic to scale processing capacity.
Armeria est un framework de microservices basé sur Netty utilisé pour construire des services asynchrones haute performance. Il fonctionne comme un serveur RPC multi-protocole capable d'exposer des services gRPC, Thrift et REST sur un port unique unifié. Le projet se distingue par sa capacité à exécuter divers protocoles de communication simultanément et par sa console web de débogage RPC intégrée, qui permet la découverte et l'invocation d'appels de procédure distante via JSON. Il inclut également un transcodeur gRPC vers JSON pour permettre la compatibilité des clients web avec les services Protobuf. Le framework fournit une suite complète de capacités de microservices, incluant des clients RPC réactifs avec disjoncteurs (circuit breakers) et tentatives (retries), équilibrage de charge côté client, et intégration de découverte de services avec DNS, ZooKeeper et Consul. Il couvre en outre l'observabilité des systèmes distribués via la collecte de métriques, le traçage distribué et la documentation interactive des services. Armeria prend en charge l'intégration de conteneurs de servlets hérités et s'intègre avec des frameworks web tiers pour permettre la coexistence au sein d'un même processus serveur.
Supports advanced traffic distribution strategies like weighted round-robin and sticky sessions for discovered service endpoints.
EasySwoole est un framework PHP asynchrone haute performance conçu pour construire des réseaux pilotés par les événements et des applications à mémoire persistante. Il fonctionne comme une boîte à outils pour développer des microservices distribués et des serveurs asynchrones capables de gérer des connexions HTTP, TCP, UDP et WebSocket simultanées. Le framework se distingue par un mode d'exécution de processus en mémoire persistante qui élimine la surcharge liée au chargement répétitif des fichiers et aux invocations lors du traitement des requêtes. Il fournit un support intégré pour les systèmes distribués via des implémentations de RPC (Remote Procedure Call) et l'intégration de la découverte de services. Le système couvre un large éventail de capacités de concurrence et d'automatisation, incluant l'exécution de tâches basées sur des coroutines, la gestion de pools de connexions pour les bases de données et les caches, et un conteneur d'injection de dépendances centralisé. Il inclut également des outils pour l'exécution asynchrone de tâches en arrière-plan et la planification automatisée de tâches cron. Le framework intègre la gestion des identités et des accès pour appliquer des politiques de jetons et des règles de permission.
Manages standalone worker processes and message queues to handle large volumes of data and complex computations.
Ce projet fournit un pipeline de données d'observabilité conçu pour collecter, transformer et router les logs, métriques et traces depuis diverses sources vers des formats standardisés pour analyse. Il fonctionne comme une architecture de composants basée sur des plugins utilisant des récepteurs, processeurs et exportateurs modulaires pour déplacer les données de télémétrie à travers des chaînes de traitement séquentielles. Le système utilise un modèle de composants piloté par interface qui permet des connecteurs interchangeables et des extensions contribuées par la communauté. Il se distingue par un langage spécifique au domaine pour le filtrage de télémétrie, l'attribution de ressources basée sur les métadonnées pour la détection d'infrastructure, et la résolution dynamique de secrets depuis des gestionnaires cloud externes. Le collecteur couvre un large éventail de capacités incluant l'ingestion de télémétrie depuis des fournisseurs cloud et des bases de données, la transformation et la réagrégation de données, et l'exportation sécurisée vers des backends de stockage tiers. Il incorpore des fonctionnalités de gestion du trafic telles que le routage round-robin et le partitionnement de messages, ainsi que des primitives de sécurité pour la gestion des identités et des accès via OAuth2 et OIDC. Le projet inclut un framework d'assurance qualité pour la simulation de données synthétiques, les tests de performance de bout en bout et la vérification de l'intégrité des données.
Distributes telemetry data across multiple pipeline components using a round-robin scaling strategy.
Keepalived est un gestionnaire de haute disponibilité et un outil de basculement d'IP virtuelle qui assure une disponibilité continue du service. Il coordonne la migration des adresses IP flottantes entre les nœuds maître et de sauvegarde en utilisant le protocole VRRP (Virtual Router Redundancy Protocol) pour gérer la redondance des routeurs et le basculement transparent. Le projet se distingue en s'intégrant au module IPVS du noyau Linux pour fonctionner comme un équilibreur de charge de couche transport. Il distribue le trafic réseau à travers les serveurs backend en utilisant divers algorithmes de planification et méthodes de transfert tels que NAT, routage direct ou tunneling. Le système inclut des capacités de surveillance de la santé du réseau utilisant TCP, HTTP et le protocole BFD (Bidirectional Forwarding Detection) pour identifier les défaillances en quelques millisecondes. Il prend en charge l'orchestration automatisée du basculement via l'exécution de scripts personnalisés, des alertes administratives SMTP et la synchronisation des chemins de routage à travers plusieurs instances. Le logiciel fournit une surface de configuration qui prend en charge la templétisation, l'isolation des espaces de noms réseau et l'exportation des métriques système via SNMP.
Implements Round Robin and Weighted Least Connection algorithms to distribute requests across real servers via NAT.
Emissary est une passerelle API Kubernetes qui gère le trafic externe entrant et le route vers des microservices internes. Il utilise un proxy Envoy comme plan de données sous-jacent pour gérer le routage du trafic haute performance et la traduction de protocole, avec un plan de contrôle qui traduit les ressources personnalisées et les annotations Kubernetes en configurations de proxy. Le projet fournit un support spécialisé pour l'infrastructure gRPC, y compris le routage HTTP/2 et le pontage de protocole gRPC-Web pour les clients basés sur navigateur. Il permet une sécurité zero-trust via le chiffrement TLS mutuel et délègue la vérification d'identité à des services d'authentification externes. Les capacités de gestion du trafic incluent l'équilibrage de charge round-robin pondéré pour les déploiements canary et la livraison progressive, ainsi que l'équilibrage de charge de couche 7 et l'affinité de session. Le système prend également en charge le réseautage multi-cluster via le pontage de trafic inter-cluster et s'intègre à des services de limitation de débit externes pour plafonner les volumes de requêtes. L'observabilité est gérée via une interface de diagnostic, l'intégration du traçage distribué et l'exportation de métriques de performance vers des outils externes comme Prometheus et StatsD.
Distributes requests across multiple service versions using weighted round-robin algorithms for canary testing.
Redbird est un reverse proxy Node.js utilisé pour router le trafic réseau externe vers des serveurs internes. Il fonctionne comme un équilibreur de charge de couche 7 qui mappe les requêtes entrantes depuis des domaines ou hôtes spécifiques vers des serveurs amont cibles, protégeant les services backend d'une exposition publique directe. Le projet propose une gestion dynamique des routes, permettant aux règles de routage d'être mises à jour par programmation à l'exécution. Il synchronise ces routes automatiquement en interrogeant des sources externes telles que des conteneurs Docker et des clusters etcd pour aligner les configurations de proxy avec les cycles de vie des services. Les capacités supplémentaires incluent la terminaison SSL et TLS avec renouvellement automatique de certificat, l'équilibrage de charge round-robin, et le transfert de trafic WebSocket. Il prend également en charge la redirection HTTP-vers-HTTPS, le traitement des en-têtes d'authentification NTLM, et le protocole PROXY pour récupérer les adresses client originales.
Distributes incoming network traffic across a pool of backend servers using a round-robin scheduling algorithm.
This project is a technical study and analysis guide focused on the internal architecture of Node.js. It provides an in-depth examination of the runtime, focusing on how the engine manages memory handles, executes asynchronous operations, and implements core module logic. The guide specifically analyzes the integration of native C++ classes and functions into JavaScript and documents the behavior of the libuv event loop. It includes detailed references for optimizing performance by identifying V8 compiler bailouts and profiling execution to improve resource efficiency. The material covers a
Explains how to distribute network loads across multiple worker processes to utilize multi-core CPUs.
elasticsearch-py est un wrapper d'API de recherche distribuée et un administrateur de cluster. Il sert de connecteur sécurisé pour exécuter des requêtes de recherche et effectuer des tâches d'administration sur un moteur de recherche. La bibliothèque fournit une interface de haut niveau pour gérer les index, les documents et les connexions aux nœuds. Elle permet la transmission de données chiffrées et la communication authentifiée avec un cluster de recherche. Le projet couvre la recherche en texte intégral, la gestion des données et l'administration de cluster. Il inclut des capacités pour gérer les données de document, implémenter des requêtes de recherche complexes et maintenir une communication fiable via la découverte de nœuds et l'équilibrage de charge.
Distributes outgoing requests across known cluster nodes using a round-robin strategy to ensure balanced load.