Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

workarea-circuit_breaker

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

workarea-circuit_breaker

  • 1.0.3
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Workarea Circuit Breaker

Circuit Breaker plugin for the Workarea platform.

Configuration

Configure how circuit breaker should handle external service calls

# window: the window of time to count failed calls to break the circuit
# max_fails: how many failed calls need to happen in the window to break the circuit
# break_for: how long the circuit should fast fail after broken
Workarea.Configure do |config|
  config.circuit_breaker.circuits = {
    exteral_service: { max_fails: 3, break_for: 5.minutes, window: 5.minutes }
  }
end

or use CircuitBreaker.add_service

# configure service with circuit defaults
CircuitBreaker.add_service(:external_service)

Usage

# will re-raise any errors raised in the block or
#raise ::Workarea::CircuitBreaker::CircuitBreakerError if the circuit is broken
Workarea::CircuitBreaker[:service].wrap do
  Net::HTTP.get_response(.....)
end

Wrap takes a parameter fallback which is either a symbol of a method defined in the current scope to call when the circuit is broken or an error is raised in the block or anything that responds to #call

Using a symbol

Workarea::CircuitBreaker[:service].wrap(fallback: :faked_response) do
  Net::HTTP.get_response(.....)
end

private

def faked_response
  "...."
end

Using a lambda

fallback = -> { "..." }
Workarea::CircuitBreaker[:service].wrap(fallback: fallback) do
  Net::HTTP.get_response(.....)
end

Admin

An admin to view circuits is available at /admin/circuits, only viewable by super_admins. Circuit status can viewed and can be manually broken or reset.

Getting Started

This gem contains a rails engine that must be mounted onto a host Rails application.

To access Workarea gems and source code, you must be an employee of WebLinc or a licensed retailer or partner.

Workarea gems are hosted privately at https://gems.weblinc.com/. You must have individual or team credentials to install gems from this server. Add your gems server credentials to Bundler:

bundle config gems.weblinc.com my_username:my_password

Or set the appropriate environment variable in a shell startup file:

export BUNDLE_GEMS__WEBLINC__COM='my_username:my_password'

Then add the gem to your application's Gemfile specifying the source:

# ...
gem 'workarea-circuit_breaker', source: 'https://gems.weblinc.com'
# ...

Or use a source block:

# ...
source 'https://gems.weblinc.com' do
  gem 'workarea-circuit_breaker'
end
# ...

Update your application's bundle.

cd path/to/application
bundle

Workarea Platform Documentation

See https://developer.workarea.com for Workarea platform documentation.

License

Workarea Affirm is released under the Business Software License

FAQs

Package last updated on 20 Mar 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc