19 Repos
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 is a Node.js API framework used for building REST and multi-protocol APIs. It functions as an OpenAPI server implementation that can either generate machine-readable specifications from code or produce implementation controllers and models from existing specifications. The framework distinguishes itself through a central dependency injection container and a repository-pattern data access layer. This architecture decouples application logic from component construction and persistent storage, allowing for a pluggable system where data sources and business logic are isolated throug
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 is a build automation tool and workflow orchestrator that uses Go functions to define executable build targets instead of a custom domain-specific language. It functions as a compiled build system and task runner, mapping exported Go functions to command-line targets. The tool distinguishes itself by compiling build definitions into static binaries for distribution to dependency-free machines. It utilizes hashed binary caching to avoid redundant compilations and supports the packaging of the runtime and defined tasks into a single standalone executable. The platform covers dependency ma
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 ist eine Worker-Pool-Bibliothek und ein Concurrency-Manager für Go. Er fungiert als Scheduler für gleichzeitige Aufgaben, der die Anzahl paralleler Worker begrenzt, die Jobs verarbeiten, um eine Erschöpfung der Systemressourcen zu verhindern. Das Projekt ermöglicht die Aufrechterhaltung eines persistenten Zustands innerhalb einzelner Worker-Routinen, um wiederholte Initialisierungskosten zu vermeiden. Es unterstützt zudem dynamisches Worker-Scaling, wodurch die Anzahl aktiver Hintergrund-Worker in Echtzeit angepasst werden kann, ohne laufende Aufgaben zu unterbrechen. Die Bibliothek bietet Mechanismen zur Durchsetzung von Task-Timeouts und zur Verwaltung des Worker-Lifecycles, einschließlich des geordneten Herunterfahrens von Routine-Pools. Sie nutzt Concurrency-Limiting, um die Gesamtzahl aktiver Goroutines zu beschränken.
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 ist ein leistungsstarker Bildverarbeitungsserver und eine Go-Bibliothek, die als On-Demand-Bild-Proxy fungiert. Sie bietet eine sichere Transformations-API zum Ändern der Größe, Filtern und Optimieren von Bildern sowie ein Tool zum Generieren statischer Thumbnails aus Videodateien. Das System zeichnet sich durch eine bedarfsorientierte Verarbeitungs-Engine aus, die große Bilder verarbeitet, ohne ganze Dateien in den Arbeitsspeicher zu laden. Es bietet kryptografische Request-Signierung, um unbefugte URL-Manipulationen zu verhindern, und nutzt header-basierte Format-Aushandlung, um automatisch das effizienteste Bildformat bereitzustellen, das vom Browser des Clients unterstützt wird. Das Projekt deckt ein breites Spektrum an Funktionen ab, darunter die Erkennung von Region of Interest, Wasserzeichen und erweiterbare Speicher-Backends. Es verwaltet zudem Ressourcen-Lebenszyklen durch gleichzeitiges Daten-Streaming und bietet Sicherheitsmaßnahmen wie Input-Path-Sanitization, um Cross-Site-Scripting zu verhindern. Der Server enthält ein HTML-Interface zum Rendern von Landingpages und Upload-Formularen.
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.