Toxiproxy is a framework for simulating network conditions. It's made specifically to work in testing, CI and development environments, supporting deterministic tampering with connections, but with support for randomized chaos and customization. Toxiproxy is the tool you need to prove with tests that your application doesn't have single points of failure. We've been successfully using it in all development and test environments at Shopify since October, 2014. See our blog post on resiliency for more information.Toxiproxy usage consists of two parts. A TCP proxy written in Go (what this repository contains) and a client communicating with the proxy over HTTP. You configure your application to make all test connections go through Toxiproxy and can then manipulate their health via HTTP. See Usage below on how to set up your project.
resiliency tcp-proxy proxy chaos testingHackable HTTP proxy to simulate server failure scenarios, resiliency and unexpected network conditions, built for node.js.It was mainly designed for failure resistance testing, when toxy becomes particularly useful in order to cover fault tolerance and resiliency capabilities of a system, especially in disruption-tolerant networks and service-oriented architectures, where toxy may act as MitM proxy among services in order to inject failure.
http-proxy proxy reactive failure simulation network resiliency failover testing retry http toxic fault tolerant resilient fuzz evil unexpected backoff latency jitter distributed soaAn open platform to connect, manage, and secure microservices. Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. Istio's control plane provides an abstraction layer over the underlying cluster management platform, such as Kubernetes, Mesos, etc.
microservices service-mesh lyft-envoy kubernetes api-management circuit-breaker polyglot-microservices enforce-policies proxies service-discovery docker envoy consul nomad request-routing resiliency fault-injectionAs distributed systems become increasingly popular, the reliability between services is becoming more important than ever before. Sentinel takes "flow" as breakthrough point, and works on multiple fields including flow control, circuit breaking and system adaptive protection, to guarantee reliability and resiliency of microservices. See the 中文文档 for document in Chinese.
microservice rate-limiting resiliency cloud-nativeResiliency patterns for golang. Based in part on Hystrix, Semian, and others.Follows semantic versioning using https://gopkg.in/ - import from gopkg.in/eapache/go-resiliency.v1 for guaranteed API stability.
resiliency resiliency-patterns go-librarySemian is a library for controlling access to slow or unresponsive external services to avoid cascading failures.Resource drivers are monkey-patched to be aware of Semian, these are called Semian Adapters. Thus, every time resource access is requested Semian is queried for status on the resource first. If Semian, through the patterns above, deems the resource to be unavailable it will raise an exception. The ultimate outcome of Semian is always an exception that can then be rescued for a graceful fallback. Instead of waiting for the timeout, Semian raises straight away.
resiliency circuit-breaker bulkheads webscaleRetrying made simple and easy for golang :repeat:
resiliency distributed-systemsThis project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
azure cloud patterns design-patterns scalability resiliency performance availabilityConfigurable threading, resiliency and monitoring with injectable statistics for Java EE 7. Porcupine is the implementation of the bulkhead and handshaking patterns for Java EE 7.
microservices cloud cloud-native threading monitoring executorservice injectable-statistics resiliency overload statistics porcupineA rules based pod killing container. Pod-Reaper was designed to kill pods that meet specific conditions. See the "Implemented Rules" section below for details on specific rules. Additionally, at least one rule must be enabled, or the pod-reaper will error and exit. See the Rules section below for configuring and enabling rules.
kubernetes chaos resiliencyThis repository contains demo code for my talk on Istio. To view the slides, run Go's present tool from the project folder and select istio-talk.slide.
kubernetes resiliency service-mesh istiocdk-stepfunctions-patterns library is a set of AWS CDK constructs that provide resiliency patterns implementation for AWS Step Functions. All these patterns are composable, meaning that you can combine them together to create quite complex state machines that are much easier to maintain and support than low-level JSON definitions.
aws patterns pattern pattern-library resiliency cdk stepfunctions resiliency-patternsOutboxer is a go library that implements the outbox pattern. If you have a distributed system architecture and especially is dealing with Event Driven Architecture, you might want to use outboxer.
distributed-systems resiliency
We have large collection of open source products. Follow the tags from
Tag Cloud >>
Open source products are scattered around the web. Please provide information
about the open source projects you own / you use.
Add Projects.