├── .github └── workflows │ ├── ci.yml │ ├── engines.yml │ ├── manual-native-build.yml │ ├── release-please.yml │ └── test-multiarch-publish.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .release-please-manifest.json ├── .rubocop.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Cargo.toml ├── Gemfile ├── LICENSE.txt ├── Makefile ├── README.md ├── Rakefile ├── WHY_OPEN_SOURCE.md ├── bin ├── console ├── rails ├── setup └── test_both_modes ├── breaker_machines.gemspec ├── docs ├── ADVANCED_PATTERNS.md ├── ASYNC.md ├── ASYNC_STORAGE_EXAMPLES.md ├── CASCADING_CIRCUITS.md ├── CIRCUIT_GROUPS.md ├── CONFIGURATION.md ├── COORDINATED_STATE_MANAGEMENT.md ├── DIAGRAMS.md ├── GETTING_STARTED.md ├── HORROR_STORIES.md ├── OBSERVABILITY.md ├── PERSISTENCE.md ├── RAILS_INTEGRATION.md ├── TESTING.md ├── TESTING_ACTIVESUPPORT.md └── TESTING_RSPEC.md ├── examples ├── chrono_machines_integration.rb ├── starship_systems.rb └── webhook_delivery_service.rb ├── ext └── breaker_machines_native │ ├── Cargo.toml │ ├── core │ ├── CHANGELOG.md │ ├── Cargo.toml │ ├── README.md │ ├── examples │ │ └── basic.rs │ └── src │ │ ├── builder.rs │ │ ├── bulkhead.rs │ │ ├── callbacks.rs │ │ ├── circuit.rs │ │ ├── classifier.rs │ │ ├── errors.rs │ │ ├── lib.rs │ │ └── storage.rs │ ├── extconf.rb │ └── ffi │ ├── Cargo.toml │ ├── extconf.rb │ └── src │ └── lib.rs ├── images ├── cascade-failure-technical-view.webp └── pattern-cascade-visualization.webp ├── lib ├── breaker_machines.rb └── breaker_machines │ ├── async_circuit.rb │ ├── async_support.rb │ ├── cascading_circuit.rb │ ├── circuit.rb │ ├── circuit │ ├── async_state_management.rb │ ├── base.rb │ ├── callbacks.rb │ ├── configuration.rb │ ├── coordinated_state_management.rb │ ├── execution.rb │ ├── hedged_execution.rb │ ├── introspection.rb │ ├── native.rb │ ├── state_callbacks.rb │ └── state_management.rb │ ├── circuit_group.rb │ ├── console.rb │ ├── coordinated_circuit.rb │ ├── dsl.rb │ ├── dsl │ ├── cascading_circuit_builder.rb │ ├── circuit_builder.rb │ ├── hedged_builder.rb │ └── parallel_fallback_wrapper.rb │ ├── errors.rb │ ├── hedged_async_support.rb │ ├── native_extension.rb │ ├── native_speedup.rb │ ├── registry.rb │ ├── storage.rb │ ├── storage │ ├── backend_state.rb │ ├── base.rb │ ├── bucket_memory.rb │ ├── cache.rb │ ├── fallback_chain.rb │ ├── memory.rb │ ├── native.rb │ └── null.rb │ ├── types.rb │ └── version.rb ├── mise.toml ├── release-please-config.json ├── sig ├── README.md ├── all.rbs ├── breaker_machines.rbs ├── breaker_machines │ ├── circuit.rbs │ ├── console.rbs │ ├── dsl.rbs │ ├── errors.rbs │ ├── interfaces.rbs │ ├── registry.rbs │ ├── storage.rbs │ └── types.rbs └── manifest.yaml └── test ├── array_fallback_test.rb ├── async_circuit_test.rb ├── atlas_monkey_test.rb ├── breaker_machines ├── half_open_test.rb └── rate_threshold_test.rb ├── breaker_machines_test.rb ├── bucket_storage_test.rb ├── bulkhead_test.rb ├── cascading_circuit_test.rb ├── circuit_group_test.rb ├── circuit_native_test.rb ├── circuit_test.rb ├── controllers └── weather_controller_test.rb ├── coordinated_circuit_test.rb ├── dsl_test.rb ├── dsl_validation_test.rb ├── dummy ├── README.md ├── Rakefile ├── app │ ├── controllers │ │ ├── application_controller.rb │ │ ├── circuits_controller.rb │ │ ├── health_controller.rb │ │ ├── test_controller.rb │ │ └── weather_controller.rb │ ├── models │ │ ├── application_record.rb │ │ ├── base_ship.rb │ │ ├── base_spaceship.rb │ │ ├── battle_ship.rb │ │ ├── cargo_ship.rb │ │ ├── corellian_freighter.rb │ │ ├── explorer_ship.rb │ │ ├── fighter.rb │ │ ├── rmns_atlas_monkey.rb │ │ ├── science_vessel.rb │ │ ├── spaceflight_systems.rb │ │ ├── spaceship.rb │ │ └── starfleet_battle_cruiser.rb │ └── services │ │ └── external_api_service.rb ├── bin │ └── rails ├── config.ru ├── config │ ├── application.rb │ ├── boot.rb │ ├── database.yml │ ├── environment.rb │ ├── environments │ │ ├── development.rb │ │ └── test.rb │ └── routes.rb ├── db │ ├── migrate │ │ └── 20220101000001_create_starfleet_battle_cruisers.rb │ └── schema.rb ├── demo.rb └── tmp │ └── local_secret.txt ├── dummy_ships_test.rb ├── dynamic_circuits_memory_test.rb ├── dynamic_circuits_test.rb ├── fiber_safe_test.rb ├── hedged_execution_test.rb ├── hedged_fiber_safe_test.rb ├── inheritance_test.rb ├── integration └── circuit_breaker_test.rb ├── introspection_test.rb ├── native_extension_test.rb ├── null_storage_test.rb ├── registry_test.rb ├── reset_test.rb ├── spaceship_test.rb ├── starfleet_battle_cruiser_test.rb ├── storage ├── cache_test.rb ├── fallback_chain_test.rb ├── native_test.rb └── stress_test.rb ├── storage_backend_test.rb ├── storage_test.rb └── test_helper.rb /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/engines.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.github/workflows/engines.yml -------------------------------------------------------------------------------- /.github/workflows/manual-native-build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.github/workflows/manual-native-build.yml -------------------------------------------------------------------------------- /.github/workflows/release-please.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.github/workflows/release-please.yml -------------------------------------------------------------------------------- /.github/workflows/test-multiarch-publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.github/workflows/test-multiarch-publish.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /.release-please-manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.release-please-manifest.json -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/Rakefile -------------------------------------------------------------------------------- /WHY_OPEN_SOURCE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/WHY_OPEN_SOURCE.md -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/bin/console -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/bin/rails -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/bin/setup -------------------------------------------------------------------------------- /bin/test_both_modes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/bin/test_both_modes -------------------------------------------------------------------------------- /breaker_machines.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/breaker_machines.gemspec -------------------------------------------------------------------------------- /docs/ADVANCED_PATTERNS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/ADVANCED_PATTERNS.md -------------------------------------------------------------------------------- /docs/ASYNC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/ASYNC.md -------------------------------------------------------------------------------- /docs/ASYNC_STORAGE_EXAMPLES.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/ASYNC_STORAGE_EXAMPLES.md -------------------------------------------------------------------------------- /docs/CASCADING_CIRCUITS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/CASCADING_CIRCUITS.md -------------------------------------------------------------------------------- /docs/CIRCUIT_GROUPS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/CIRCUIT_GROUPS.md -------------------------------------------------------------------------------- /docs/CONFIGURATION.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/CONFIGURATION.md -------------------------------------------------------------------------------- /docs/COORDINATED_STATE_MANAGEMENT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/COORDINATED_STATE_MANAGEMENT.md -------------------------------------------------------------------------------- /docs/DIAGRAMS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/DIAGRAMS.md -------------------------------------------------------------------------------- /docs/GETTING_STARTED.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/GETTING_STARTED.md -------------------------------------------------------------------------------- /docs/HORROR_STORIES.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/HORROR_STORIES.md -------------------------------------------------------------------------------- /docs/OBSERVABILITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/OBSERVABILITY.md -------------------------------------------------------------------------------- /docs/PERSISTENCE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/PERSISTENCE.md -------------------------------------------------------------------------------- /docs/RAILS_INTEGRATION.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/RAILS_INTEGRATION.md -------------------------------------------------------------------------------- /docs/TESTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/TESTING.md -------------------------------------------------------------------------------- /docs/TESTING_ACTIVESUPPORT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/TESTING_ACTIVESUPPORT.md -------------------------------------------------------------------------------- /docs/TESTING_RSPEC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/docs/TESTING_RSPEC.md -------------------------------------------------------------------------------- /examples/chrono_machines_integration.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/examples/chrono_machines_integration.rb -------------------------------------------------------------------------------- /examples/starship_systems.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/examples/starship_systems.rb -------------------------------------------------------------------------------- /examples/webhook_delivery_service.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/examples/webhook_delivery_service.rb -------------------------------------------------------------------------------- /ext/breaker_machines_native/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/Cargo.toml -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/CHANGELOG.md -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/Cargo.toml -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/README.md -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/examples/basic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/examples/basic.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/src/builder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/src/builder.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/src/bulkhead.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/src/bulkhead.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/src/callbacks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/src/callbacks.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/src/circuit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/src/circuit.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/src/classifier.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/src/classifier.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/src/errors.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/src/lib.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/core/src/storage.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/core/src/storage.rs -------------------------------------------------------------------------------- /ext/breaker_machines_native/extconf.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require_relative 'ffi/extconf' 4 | -------------------------------------------------------------------------------- /ext/breaker_machines_native/ffi/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/ffi/Cargo.toml -------------------------------------------------------------------------------- /ext/breaker_machines_native/ffi/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/ffi/extconf.rb -------------------------------------------------------------------------------- /ext/breaker_machines_native/ffi/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/ext/breaker_machines_native/ffi/src/lib.rs -------------------------------------------------------------------------------- /images/cascade-failure-technical-view.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/images/cascade-failure-technical-view.webp -------------------------------------------------------------------------------- /images/pattern-cascade-visualization.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/images/pattern-cascade-visualization.webp -------------------------------------------------------------------------------- /lib/breaker_machines.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines.rb -------------------------------------------------------------------------------- /lib/breaker_machines/async_circuit.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/async_circuit.rb -------------------------------------------------------------------------------- /lib/breaker_machines/async_support.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/async_support.rb -------------------------------------------------------------------------------- /lib/breaker_machines/cascading_circuit.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/cascading_circuit.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/async_state_management.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/async_state_management.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/base.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/callbacks.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/callbacks.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/configuration.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/configuration.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/coordinated_state_management.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/coordinated_state_management.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/execution.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/execution.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/hedged_execution.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/hedged_execution.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/introspection.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/introspection.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/native.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/native.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/state_callbacks.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/state_callbacks.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit/state_management.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit/state_management.rb -------------------------------------------------------------------------------- /lib/breaker_machines/circuit_group.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/circuit_group.rb -------------------------------------------------------------------------------- /lib/breaker_machines/console.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/console.rb -------------------------------------------------------------------------------- /lib/breaker_machines/coordinated_circuit.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/coordinated_circuit.rb -------------------------------------------------------------------------------- /lib/breaker_machines/dsl.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/dsl.rb -------------------------------------------------------------------------------- /lib/breaker_machines/dsl/cascading_circuit_builder.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/dsl/cascading_circuit_builder.rb -------------------------------------------------------------------------------- /lib/breaker_machines/dsl/circuit_builder.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/dsl/circuit_builder.rb -------------------------------------------------------------------------------- /lib/breaker_machines/dsl/hedged_builder.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/dsl/hedged_builder.rb -------------------------------------------------------------------------------- /lib/breaker_machines/dsl/parallel_fallback_wrapper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/dsl/parallel_fallback_wrapper.rb -------------------------------------------------------------------------------- /lib/breaker_machines/errors.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/errors.rb -------------------------------------------------------------------------------- /lib/breaker_machines/hedged_async_support.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/hedged_async_support.rb -------------------------------------------------------------------------------- /lib/breaker_machines/native_extension.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/native_extension.rb -------------------------------------------------------------------------------- /lib/breaker_machines/native_speedup.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/native_speedup.rb -------------------------------------------------------------------------------- /lib/breaker_machines/registry.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/registry.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage/backend_state.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage/backend_state.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage/base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage/base.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage/bucket_memory.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage/bucket_memory.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage/cache.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage/cache.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage/fallback_chain.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage/fallback_chain.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage/memory.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage/memory.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage/native.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage/native.rb -------------------------------------------------------------------------------- /lib/breaker_machines/storage/null.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/storage/null.rb -------------------------------------------------------------------------------- /lib/breaker_machines/types.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/lib/breaker_machines/types.rb -------------------------------------------------------------------------------- /lib/breaker_machines/version.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module BreakerMachines 4 | VERSION = '0.10.1' 5 | end 6 | -------------------------------------------------------------------------------- /mise.toml: -------------------------------------------------------------------------------- 1 | [tools] 2 | ruby = "latest" 3 | -------------------------------------------------------------------------------- /release-please-config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/release-please-config.json -------------------------------------------------------------------------------- /sig/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/README.md -------------------------------------------------------------------------------- /sig/all.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/all.rbs -------------------------------------------------------------------------------- /sig/breaker_machines.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines.rbs -------------------------------------------------------------------------------- /sig/breaker_machines/circuit.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines/circuit.rbs -------------------------------------------------------------------------------- /sig/breaker_machines/console.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines/console.rbs -------------------------------------------------------------------------------- /sig/breaker_machines/dsl.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines/dsl.rbs -------------------------------------------------------------------------------- /sig/breaker_machines/errors.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines/errors.rbs -------------------------------------------------------------------------------- /sig/breaker_machines/interfaces.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines/interfaces.rbs -------------------------------------------------------------------------------- /sig/breaker_machines/registry.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines/registry.rbs -------------------------------------------------------------------------------- /sig/breaker_machines/storage.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines/storage.rbs -------------------------------------------------------------------------------- /sig/breaker_machines/types.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/breaker_machines/types.rbs -------------------------------------------------------------------------------- /sig/manifest.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/sig/manifest.yaml -------------------------------------------------------------------------------- /test/array_fallback_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/array_fallback_test.rb -------------------------------------------------------------------------------- /test/async_circuit_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/async_circuit_test.rb -------------------------------------------------------------------------------- /test/atlas_monkey_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/atlas_monkey_test.rb -------------------------------------------------------------------------------- /test/breaker_machines/half_open_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/breaker_machines/half_open_test.rb -------------------------------------------------------------------------------- /test/breaker_machines/rate_threshold_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/breaker_machines/rate_threshold_test.rb -------------------------------------------------------------------------------- /test/breaker_machines_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/breaker_machines_test.rb -------------------------------------------------------------------------------- /test/bucket_storage_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/bucket_storage_test.rb -------------------------------------------------------------------------------- /test/bulkhead_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/bulkhead_test.rb -------------------------------------------------------------------------------- /test/cascading_circuit_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/cascading_circuit_test.rb -------------------------------------------------------------------------------- /test/circuit_group_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/circuit_group_test.rb -------------------------------------------------------------------------------- /test/circuit_native_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/circuit_native_test.rb -------------------------------------------------------------------------------- /test/circuit_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/circuit_test.rb -------------------------------------------------------------------------------- /test/controllers/weather_controller_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/controllers/weather_controller_test.rb -------------------------------------------------------------------------------- /test/coordinated_circuit_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/coordinated_circuit_test.rb -------------------------------------------------------------------------------- /test/dsl_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dsl_test.rb -------------------------------------------------------------------------------- /test/dsl_validation_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dsl_validation_test.rb -------------------------------------------------------------------------------- /test/dummy/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/README.md -------------------------------------------------------------------------------- /test/dummy/Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/Rakefile -------------------------------------------------------------------------------- /test/dummy/app/controllers/application_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/controllers/application_controller.rb -------------------------------------------------------------------------------- /test/dummy/app/controllers/circuits_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/controllers/circuits_controller.rb -------------------------------------------------------------------------------- /test/dummy/app/controllers/health_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/controllers/health_controller.rb -------------------------------------------------------------------------------- /test/dummy/app/controllers/test_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/controllers/test_controller.rb -------------------------------------------------------------------------------- /test/dummy/app/controllers/weather_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/controllers/weather_controller.rb -------------------------------------------------------------------------------- /test/dummy/app/models/application_record.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/application_record.rb -------------------------------------------------------------------------------- /test/dummy/app/models/base_ship.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/base_ship.rb -------------------------------------------------------------------------------- /test/dummy/app/models/base_spaceship.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/base_spaceship.rb -------------------------------------------------------------------------------- /test/dummy/app/models/battle_ship.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/battle_ship.rb -------------------------------------------------------------------------------- /test/dummy/app/models/cargo_ship.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/cargo_ship.rb -------------------------------------------------------------------------------- /test/dummy/app/models/corellian_freighter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/corellian_freighter.rb -------------------------------------------------------------------------------- /test/dummy/app/models/explorer_ship.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/explorer_ship.rb -------------------------------------------------------------------------------- /test/dummy/app/models/fighter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/fighter.rb -------------------------------------------------------------------------------- /test/dummy/app/models/rmns_atlas_monkey.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/rmns_atlas_monkey.rb -------------------------------------------------------------------------------- /test/dummy/app/models/science_vessel.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/science_vessel.rb -------------------------------------------------------------------------------- /test/dummy/app/models/spaceflight_systems.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/spaceflight_systems.rb -------------------------------------------------------------------------------- /test/dummy/app/models/spaceship.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/spaceship.rb -------------------------------------------------------------------------------- /test/dummy/app/models/starfleet_battle_cruiser.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/models/starfleet_battle_cruiser.rb -------------------------------------------------------------------------------- /test/dummy/app/services/external_api_service.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/app/services/external_api_service.rb -------------------------------------------------------------------------------- /test/dummy/bin/rails: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/bin/rails -------------------------------------------------------------------------------- /test/dummy/config.ru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/config.ru -------------------------------------------------------------------------------- /test/dummy/config/application.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/config/application.rb -------------------------------------------------------------------------------- /test/dummy/config/boot.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/config/boot.rb -------------------------------------------------------------------------------- /test/dummy/config/database.yml: -------------------------------------------------------------------------------- 1 | test: 2 | adapter: sqlite3 3 | database: ":memory:" 4 | -------------------------------------------------------------------------------- /test/dummy/config/environment.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/config/environment.rb -------------------------------------------------------------------------------- /test/dummy/config/environments/development.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/config/environments/development.rb -------------------------------------------------------------------------------- /test/dummy/config/environments/test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/config/environments/test.rb -------------------------------------------------------------------------------- /test/dummy/config/routes.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/config/routes.rb -------------------------------------------------------------------------------- /test/dummy/db/migrate/20220101000001_create_starfleet_battle_cruisers.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/db/migrate/20220101000001_create_starfleet_battle_cruisers.rb -------------------------------------------------------------------------------- /test/dummy/db/schema.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/db/schema.rb -------------------------------------------------------------------------------- /test/dummy/demo.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/demo.rb -------------------------------------------------------------------------------- /test/dummy/tmp/local_secret.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy/tmp/local_secret.txt -------------------------------------------------------------------------------- /test/dummy_ships_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dummy_ships_test.rb -------------------------------------------------------------------------------- /test/dynamic_circuits_memory_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dynamic_circuits_memory_test.rb -------------------------------------------------------------------------------- /test/dynamic_circuits_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/dynamic_circuits_test.rb -------------------------------------------------------------------------------- /test/fiber_safe_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/fiber_safe_test.rb -------------------------------------------------------------------------------- /test/hedged_execution_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/hedged_execution_test.rb -------------------------------------------------------------------------------- /test/hedged_fiber_safe_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/hedged_fiber_safe_test.rb -------------------------------------------------------------------------------- /test/inheritance_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/inheritance_test.rb -------------------------------------------------------------------------------- /test/integration/circuit_breaker_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/integration/circuit_breaker_test.rb -------------------------------------------------------------------------------- /test/introspection_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/introspection_test.rb -------------------------------------------------------------------------------- /test/native_extension_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/native_extension_test.rb -------------------------------------------------------------------------------- /test/null_storage_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/null_storage_test.rb -------------------------------------------------------------------------------- /test/registry_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/registry_test.rb -------------------------------------------------------------------------------- /test/reset_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/reset_test.rb -------------------------------------------------------------------------------- /test/spaceship_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/spaceship_test.rb -------------------------------------------------------------------------------- /test/starfleet_battle_cruiser_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/starfleet_battle_cruiser_test.rb -------------------------------------------------------------------------------- /test/storage/cache_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/storage/cache_test.rb -------------------------------------------------------------------------------- /test/storage/fallback_chain_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/storage/fallback_chain_test.rb -------------------------------------------------------------------------------- /test/storage/native_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/storage/native_test.rb -------------------------------------------------------------------------------- /test/storage/stress_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/storage/stress_test.rb -------------------------------------------------------------------------------- /test/storage_backend_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/storage_backend_test.rb -------------------------------------------------------------------------------- /test/storage_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/storage_test.rb -------------------------------------------------------------------------------- /test/test_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seuros/breaker_machines/HEAD/test/test_helper.rb --------------------------------------------------------------------------------