├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .markdownlint.yaml ├── .rspec ├── .rubocop.yml ├── .yamllint.yml ├── .yardopts ├── CHANGELOG.md ├── Gemfile ├── LICENSE.txt ├── README.md ├── bin ├── benchmark ├── check-version ├── console ├── rspec ├── rubocop ├── yard ├── yardoc └── yri ├── faulty.gemspec ├── lib ├── faulty.rb └── faulty │ ├── cache.rb │ ├── cache │ ├── auto_wire.rb │ ├── circuit_proxy.rb │ ├── default.rb │ ├── fault_tolerant_proxy.rb │ ├── interface.rb │ ├── mock.rb │ ├── null.rb │ └── rails.rb │ ├── circuit.rb │ ├── circuit_registry.rb │ ├── deprecation.rb │ ├── error.rb │ ├── events.rb │ ├── events │ ├── callback_listener.rb │ ├── filter_notifier.rb │ ├── honeybadger_listener.rb │ ├── listener_interface.rb │ ├── log_listener.rb │ └── notifier.rb │ ├── immutable_options.rb │ ├── patch.rb │ ├── patch │ ├── base.rb │ ├── elasticsearch.rb │ ├── mysql2.rb │ ├── redis.rb │ └── redis │ │ ├── middleware.rb │ │ └── patch.rb │ ├── result.rb │ ├── status.rb │ ├── storage.rb │ ├── storage │ ├── auto_wire.rb │ ├── circuit_proxy.rb │ ├── fallback_chain.rb │ ├── fault_tolerant_proxy.rb │ ├── interface.rb │ ├── memory.rb │ ├── null.rb │ └── redis.rb │ └── version.rb └── spec ├── cache ├── auto_wire_spec.rb ├── circuit_proxy_spec.rb ├── default_spec.rb ├── fault_tolerant_proxy_spec.rb ├── mock_spec.rb ├── null_spec.rb └── rails_spec.rb ├── circuit_spec.rb ├── deprecation_spec.rb ├── events ├── callback_listener_spec.rb ├── filter_notifier_spec.rb ├── honeybadger_listener_spec.rb ├── log_listener_spec.rb └── notifier_spec.rb ├── faulty_spec.rb ├── immutable_options_spec.rb ├── patch ├── base_spec.rb ├── elasticsearch_spec.rb ├── mysql2_spec.rb └── redis_spec.rb ├── patch_spec.rb ├── result_spec.rb ├── spec_helper.rb ├── status_spec.rb ├── storage ├── auto_wire_spec.rb ├── circuit_proxy_spec.rb ├── fallback_chain_spec.rb ├── fault_tolerant_proxy_spec.rb ├── memory_spec.rb └── redis_spec.rb └── support └── concurrency.rb /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/.gitignore -------------------------------------------------------------------------------- /.markdownlint.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/.markdownlint.yaml -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --color 2 | --require spec_helper 3 | -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /.yamllint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/.yamllint.yml -------------------------------------------------------------------------------- /.yardopts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/.yardopts -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/README.md -------------------------------------------------------------------------------- /bin/benchmark: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/bin/benchmark -------------------------------------------------------------------------------- /bin/check-version: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/bin/check-version -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/bin/console -------------------------------------------------------------------------------- /bin/rspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/bin/rspec -------------------------------------------------------------------------------- /bin/rubocop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/bin/rubocop -------------------------------------------------------------------------------- /bin/yard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/bin/yard -------------------------------------------------------------------------------- /bin/yardoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/bin/yardoc -------------------------------------------------------------------------------- /bin/yri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/bin/yri -------------------------------------------------------------------------------- /faulty.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/faulty.gemspec -------------------------------------------------------------------------------- /lib/faulty.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty.rb -------------------------------------------------------------------------------- /lib/faulty/cache.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache.rb -------------------------------------------------------------------------------- /lib/faulty/cache/auto_wire.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache/auto_wire.rb -------------------------------------------------------------------------------- /lib/faulty/cache/circuit_proxy.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache/circuit_proxy.rb -------------------------------------------------------------------------------- /lib/faulty/cache/default.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache/default.rb -------------------------------------------------------------------------------- /lib/faulty/cache/fault_tolerant_proxy.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache/fault_tolerant_proxy.rb -------------------------------------------------------------------------------- /lib/faulty/cache/interface.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache/interface.rb -------------------------------------------------------------------------------- /lib/faulty/cache/mock.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache/mock.rb -------------------------------------------------------------------------------- /lib/faulty/cache/null.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache/null.rb -------------------------------------------------------------------------------- /lib/faulty/cache/rails.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/cache/rails.rb -------------------------------------------------------------------------------- /lib/faulty/circuit.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/circuit.rb -------------------------------------------------------------------------------- /lib/faulty/circuit_registry.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/circuit_registry.rb -------------------------------------------------------------------------------- /lib/faulty/deprecation.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/deprecation.rb -------------------------------------------------------------------------------- /lib/faulty/error.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/error.rb -------------------------------------------------------------------------------- /lib/faulty/events.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/events.rb -------------------------------------------------------------------------------- /lib/faulty/events/callback_listener.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/events/callback_listener.rb -------------------------------------------------------------------------------- /lib/faulty/events/filter_notifier.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/events/filter_notifier.rb -------------------------------------------------------------------------------- /lib/faulty/events/honeybadger_listener.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/events/honeybadger_listener.rb -------------------------------------------------------------------------------- /lib/faulty/events/listener_interface.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/events/listener_interface.rb -------------------------------------------------------------------------------- /lib/faulty/events/log_listener.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/events/log_listener.rb -------------------------------------------------------------------------------- /lib/faulty/events/notifier.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/events/notifier.rb -------------------------------------------------------------------------------- /lib/faulty/immutable_options.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/immutable_options.rb -------------------------------------------------------------------------------- /lib/faulty/patch.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/patch.rb -------------------------------------------------------------------------------- /lib/faulty/patch/base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/patch/base.rb -------------------------------------------------------------------------------- /lib/faulty/patch/elasticsearch.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/patch/elasticsearch.rb -------------------------------------------------------------------------------- /lib/faulty/patch/mysql2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/patch/mysql2.rb -------------------------------------------------------------------------------- /lib/faulty/patch/redis.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/patch/redis.rb -------------------------------------------------------------------------------- /lib/faulty/patch/redis/middleware.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/patch/redis/middleware.rb -------------------------------------------------------------------------------- /lib/faulty/patch/redis/patch.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/patch/redis/patch.rb -------------------------------------------------------------------------------- /lib/faulty/result.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/result.rb -------------------------------------------------------------------------------- /lib/faulty/status.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/status.rb -------------------------------------------------------------------------------- /lib/faulty/storage.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage.rb -------------------------------------------------------------------------------- /lib/faulty/storage/auto_wire.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage/auto_wire.rb -------------------------------------------------------------------------------- /lib/faulty/storage/circuit_proxy.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage/circuit_proxy.rb -------------------------------------------------------------------------------- /lib/faulty/storage/fallback_chain.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage/fallback_chain.rb -------------------------------------------------------------------------------- /lib/faulty/storage/fault_tolerant_proxy.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage/fault_tolerant_proxy.rb -------------------------------------------------------------------------------- /lib/faulty/storage/interface.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage/interface.rb -------------------------------------------------------------------------------- /lib/faulty/storage/memory.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage/memory.rb -------------------------------------------------------------------------------- /lib/faulty/storage/null.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage/null.rb -------------------------------------------------------------------------------- /lib/faulty/storage/redis.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/storage/redis.rb -------------------------------------------------------------------------------- /lib/faulty/version.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/lib/faulty/version.rb -------------------------------------------------------------------------------- /spec/cache/auto_wire_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/cache/auto_wire_spec.rb -------------------------------------------------------------------------------- /spec/cache/circuit_proxy_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/cache/circuit_proxy_spec.rb -------------------------------------------------------------------------------- /spec/cache/default_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/cache/default_spec.rb -------------------------------------------------------------------------------- /spec/cache/fault_tolerant_proxy_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/cache/fault_tolerant_proxy_spec.rb -------------------------------------------------------------------------------- /spec/cache/mock_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/cache/mock_spec.rb -------------------------------------------------------------------------------- /spec/cache/null_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/cache/null_spec.rb -------------------------------------------------------------------------------- /spec/cache/rails_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/cache/rails_spec.rb -------------------------------------------------------------------------------- /spec/circuit_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/circuit_spec.rb -------------------------------------------------------------------------------- /spec/deprecation_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/deprecation_spec.rb -------------------------------------------------------------------------------- /spec/events/callback_listener_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/events/callback_listener_spec.rb -------------------------------------------------------------------------------- /spec/events/filter_notifier_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/events/filter_notifier_spec.rb -------------------------------------------------------------------------------- /spec/events/honeybadger_listener_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/events/honeybadger_listener_spec.rb -------------------------------------------------------------------------------- /spec/events/log_listener_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/events/log_listener_spec.rb -------------------------------------------------------------------------------- /spec/events/notifier_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/events/notifier_spec.rb -------------------------------------------------------------------------------- /spec/faulty_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/faulty_spec.rb -------------------------------------------------------------------------------- /spec/immutable_options_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/immutable_options_spec.rb -------------------------------------------------------------------------------- /spec/patch/base_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/patch/base_spec.rb -------------------------------------------------------------------------------- /spec/patch/elasticsearch_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/patch/elasticsearch_spec.rb -------------------------------------------------------------------------------- /spec/patch/mysql2_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/patch/mysql2_spec.rb -------------------------------------------------------------------------------- /spec/patch/redis_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/patch/redis_spec.rb -------------------------------------------------------------------------------- /spec/patch_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/patch_spec.rb -------------------------------------------------------------------------------- /spec/result_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/result_spec.rb -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/spec_helper.rb -------------------------------------------------------------------------------- /spec/status_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/status_spec.rb -------------------------------------------------------------------------------- /spec/storage/auto_wire_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/storage/auto_wire_spec.rb -------------------------------------------------------------------------------- /spec/storage/circuit_proxy_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/storage/circuit_proxy_spec.rb -------------------------------------------------------------------------------- /spec/storage/fallback_chain_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/storage/fallback_chain_spec.rb -------------------------------------------------------------------------------- /spec/storage/fault_tolerant_proxy_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/storage/fault_tolerant_proxy_spec.rb -------------------------------------------------------------------------------- /spec/storage/memory_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/storage/memory_spec.rb -------------------------------------------------------------------------------- /spec/storage/redis_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/storage/redis_spec.rb -------------------------------------------------------------------------------- /spec/support/concurrency.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParentSquare/faulty/HEAD/spec/support/concurrency.rb --------------------------------------------------------------------------------