19 dépôts
Mechanisms for terminating long-running operations based on lifecycle signals or request timeouts.
Distinct from Asynchronous Operation Cancellation: Distinct from Asynchronous Operation Cancellation: focuses specifically on database query lifecycle management via context signals.
Explore 19 awesome GitHub repositories matching software engineering & architecture · Context-Aware Cancellation. Refine with filters or upvote what's useful.
This project is a native Go driver for the MySQL protocol, providing a communication layer that enables applications to interact with relational database management systems. It implements the standard database interface, allowing developers to manage persistent connections, execute queries, and handle transactions within their applications. The driver functions by translating high-level database commands into the specific binary packet format required for communication with MySQL servers. It manages network sessions through a connection pooling mechanism and supports context-aware query cance
Monitors lifecycle signals to terminate long-running network operations immediately when a request is aborted or times out.
This project is a functional programming library and toolkit for building production TypeScript applications. It provides a system for managing concurrency, error handling, and resource lifecycles using functional effects. The project distinguishes itself through a comprehensive suite of specialized toolkits, including a dependency injection framework for decoupling service implementations, a workflow orchestrator for coordinating durable processes, and a SQL database toolkit for consistent data operations across multiple dialects. It also implements an OpenTelemetry instrumentation library f
Tracks the lifecycle of external resources to ensure proper acquisition and release across asynchronous boundaries.
Polly is a resilience and transient-fault-handling library for .NET applications. It provides a framework for defining and executing stability patterns that manage failures and resource exhaustion during operation execution. The library enables developers to compose complex resilience strategies through a fluent builder pattern, wrapping target operations in functional decorators. These policies intercept execution flow to apply automated recovery mechanisms, such as retries for temporary errors or circuit breakers that isolate unstable components by blocking requests. The framework supports
Enforces time-bounded limits on operations using native cancellation tokens to prevent resource exhaustion.
Kubebuilder is a framework and set of scaffolding tools used to build Kubernetes APIs and controllers. It functions as an operator framework that provides generators for custom resource definitions, admission webhooks, and RBAC manifests to extend cluster functionality. The project distinguishes itself through marker-based code generation, which parses source code comments to automatically produce Kubernetes manifests and boilerplate logic. It employs a hub-and-spoke versioning model to translate data between multiple API versions and uses a three-way merge strategy to automate project migrat
Implements asynchronous pre-delete hooks via finalizers to clean up external resources before object removal.
This project is a translated Go language style guide and programming standard. It provides a collection of coding standards and best practices designed to ensure that Go code remains maintainable, readable, and efficient. The guide focuses on idiomatic patterns for error handling, interface compliance, and memory optimization. It establishes standards for package naming and the use of functional options to maintain backward compatibility in constructors. It covers a broad range of capabilities, including concurrency management for coordinating process lifecycles and preventing resource leaks
Defines synchronization mechanisms to coordinate the shutdown of shared concurrent resources.
language-ext is a functional programming framework for C# that provides a suite of immutable data structures and monadic types. It enables the implementation of pure functional programming patterns, utilizing containers to manage side effects, optional values, and error handling. The library is distinguished by its advanced concurrency and state management tools, including a software transactional memory system and lock-free atomic references. It also provides specialized utilities for distributed systems, such as vector clocks for causality tracking and deterministic data conflict resolution
Ensures resources are properly acquired and released using bracket patterns during failures or cancellations.
Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It serves as an embedded scripting engine and virtual machine that allows Go applications to execute Lua scripts and exchange data between the host and the script environment. The project provides a bytecode compiler to transform source code into a binary format for faster execution. It enables deep integration between the two languages by allowing the registration of native Go functions to be called from scripts, and the invocation of script functions directly from Go. The engine c
Provides mechanisms to terminate running Lua scripts using Go context signals for timeout and lifecycle management.
xorm is a relational mapper and object-relational mapping tool for Go. It translates Go structures into SQL queries and maps database rows back into native objects, providing a multi-dialect database driver that supports MySQL, PostgreSQL, SQLite, Oracle, SQL Server, and TiDB. The project features a read-write splitting manager that routes modification requests to a primary database and read requests to replicas. It includes a database schema synchronizer to automatically align table structures and indexes with application data models, as well as a fluent SQL query builder for constructing co
Controls database request lifecycles using contexts to implement timeouts and query cancellation.
Arrow is a functional programming library for Kotlin that provides tools for implementing data-oriented programming patterns. It serves as a framework for typed error handling, a concurrency toolkit, and a library for the manipulation of immutable data. The project distinguishes itself through specialized capabilities for managing application failures using explicit types instead of exceptions and implementing resilience patterns such as circuit breakers and retry policies for distributed services. It also provides optics to update and query deeply nested immutable data structures without man
Tracks the acquisition and release of external resources across asynchronous boundaries.
LoopBack Next est un framework d'API Node.js utilisé pour construire des API REST et multi-protocoles. Il fonctionne comme une implémentation de serveur OpenAPI capable soit de générer des spécifications lisibles par machine à partir du code, soit de produire des contrôleurs et des modèles d'implémentation à partir de spécifications existantes. Le framework se distingue par un conteneur d'injection de dépendances central et une couche d'accès aux données basée sur le pattern repository. Cette architecture découple la logique applicative de la construction des composants et du stockage persistant, permettant un système enfichable où les sources de données et la logique métier sont isolées via un système de connecteurs standardisé. Le projet couvre un large éventail de capacités, incluant le contrôle d'accès basé sur les rôles avec des stratégies d'authentification enfichables et l'orchestration de services REST et SOAP externes. Il fournit également des outils pour la communication en temps réel via des endpoints WebSocket, la validation de schémas JSON, et l'échafaudage automatique de projets via une interface en ligne de commande. Le développement est soutenu par un ensemble d'outils CLI pour amorcer les applications, générer des composants d'API et gérer les dépendances du projet.
Manages the initialization and shutdown sequences for shared external resources and singletons.
This is a dependency injection framework and inversion of control container for Python. It decouples object creation from business logic by managing how services and their dependencies are assembled, delivered, and linked within an application. The framework is distinguished by its ability to perform automated component wiring, using import hooks and decorators to inject dependencies into functions and classes across different modules. It supports non-blocking flows through an asynchronous dependency resolver and manages the initialization and shutdown sequences of shared external resources a
Handles the initialization and shutdown of shared components using functions, context managers, or asynchronous initializers.
Mage est un outil d'automatisation de build et un orchestrateur de workflow qui utilise des fonctions Go pour définir des cibles de build exécutables au lieu d'un langage spécifique au domaine (DSL). Il fonctionne comme un système de build compilé et un exécuteur de tâches, mappant les fonctions Go exportées vers des cibles en ligne de commande. L'outil se distingue en compilant les définitions de build en binaires statiques pour une distribution sur des machines sans dépendances. Il utilise le cache binaire haché pour éviter les compilations redondantes et prend en charge l'empaquetage du runtime et des tâches définies dans un seul exécutable autonome. La plateforme couvre la gestion des dépendances via des arbres de dépendances de tâches et des comparaisons d'horodatage de fichiers pour garantir que les cibles sont mises à jour dans le bon ordre. Elle fournit une interface en ligne de commande proposant le namespace de cibles, l'autocomplétion shell et la génération automatique d'aide dérivée des commentaires de fonction via réflexion. Le contrôle d'exécution inclut le support pour le traitement de tâches parallèle et série, ainsi que l'annulation avec gestion de timeout. Le système s'intègre avec les modules Go et permet l'inclusion de bibliothèques externes pour étendre les capacités des cibles de build.
Passes timeout-aware contexts through the execution chain to allow graceful termination of long-running build processes.
ZIO is a functional effect system for the JVM that models asynchronous and concurrent programs as pure, composable values with typed error handling and dependency injection. Its core identity is built on fiber-based concurrency, where lightweight, non-blocking fibers execute millions of concurrent tasks with structured lifecycle management, and a dual-channel error model that separates expected business failures from unexpected system defects at compile time. The system provides effect-typed dependency injection through a layer-based dependency graph, pull-based reactive stream processing with
Automatically cancels fibers whose results are no longer needed, preventing resource leaks.
Awilix is a JavaScript dependency injection framework and inversion of control container. It provides a centralized system for registering and resolving services, decoupling application components by automating how dependencies are created and passed to the functions or classes that require them. The framework features an automatic module loader that scans the filesystem using glob patterns to register dependencies based on filenames and exports. It supports parameter-name-based injection and proxy-based resolution to manage how dependencies are delivered to constructors and functions. The s
Tracks instantiated dependencies and executes cleanup functions when a scope is destroyed.
Tunny est une bibliothèque de pool de travailleurs (worker pool) et un gestionnaire de concurrence pour Go. Il fonctionne comme un planificateur de tâches concurrent qui limite le nombre de travailleurs parallèles traitant les travaux pour éviter l'épuisement des ressources système. Le projet permet le maintien d'un état persistant au sein des routines de travail individuelles pour éviter les coûts d'initialisation répétés. Il prend également en charge la mise à l'échelle dynamique des travailleurs, permettant d'ajuster le nombre de travailleurs en arrière-plan actifs en temps réel sans interrompre les tâches en cours. La bibliothèque fournit des mécanismes pour l'application de délais d'expiration (timeout) des tâches et la gestion du cycle de vie des travailleurs, y compris l'arrêt gracieux des pools de routines. Elle utilise la limitation de la concurrence pour restreindre le nombre total de goroutines actives.
Uses Go contexts to propagate cancellation signals and enforce timeouts for running worker routines.
This is a Go library providing a framework for managing repetitive task execution and implementing exponential backoff strategies. It serves as a concurrency tool designed to prevent system overload during failures by retrying operations with increasing delays. The project implements a retry strategy framework that manages attempt limits and timeouts during unstable network or system calls. It specifically provides an implementation of the exponential backoff algorithm to handle failing operations. The library covers reliability patterns for mitigating transient failures and service outages,
Implements the ability to terminate retry loops immediately based on Go context signals.
Imagor est un serveur de traitement d'image haute performance et une bibliothèque Go qui fonctionne comme un proxy d'image à la demande. Il fournit une API de transformation sécurisée pour redimensionner, filtrer et optimiser les images, ainsi qu'un outil pour générer des vignettes statiques à partir de fichiers vidéo. Le système se distingue par l'utilisation d'un moteur de traitement à la demande pour gérer les grandes images sans charger des fichiers entiers en mémoire. Il propose une signature de requête cryptographique pour empêcher la falsification d'URL et utilise la négociation de format basée sur les en-têtes pour servir automatiquement le format d'image le plus efficace supporté par le navigateur du client. Le projet couvre un large éventail de capacités, incluant la détection de zone d'intérêt, l'ajout de filigranes et des backends de stockage enfichables. Il gère également les cycles de vie des ressources via le streaming de données concurrent et fournit des mesures de sécurité telles que l'assainissement des chemins d'entrée pour prévenir les attaques XSS. Le serveur inclut une interface HTML pour le rendu de pages d'accueil et de formulaires d'upload.
Uses derived contexts to ensure image processing completes even if the original HTTP request is cancelled.
TUnit is a comprehensive C# testing framework, mocking library, and fluent assertion tool. It utilizes source generation for test discovery and mock creation, ensuring compatibility with Native AOT and IL trimming by eliminating the need for runtime reflection and proxies. The framework provides specialized capabilities for integration testing, including the management of distributed application lifecycles, isolated database schemas, and the correlation of telemetry and logs across process boundaries via OTLP. It also includes an HTTP testing utility to intercept network exchanges and mock AP
Injects expensive resources into tests with automatic lifecycle management and cross-class sharing.
Goldilocks is a suite of tools for analyzing resource usage and managing autoscaling policies in Kubernetes. It functions as a resource optimizer and capacity planner, providing a dashboard and command line interface to analyze workload utilization patterns and suggest efficient CPU and memory requests and limits for containers. The project distinguishes itself by visualizing recommendations from the Vertical Pod Autoscaler via a web interface and providing a lifecycle manager to create and configure these autoscaler objects. It includes capabilities to aggregate resource recommendations acro
Manages the lifecycle of Vertical Pod Autoscaler objects through the cluster API.