semian icon indicating copy to clipboard operation
semian copied to clipboard

:monkey: Resiliency toolkit for Ruby for failing fast

Results 51 semian issues
Sort by recently updated
recently updated
newest added

Extract error pattern into constant to shorten long line. Quiets rubocop.

question
Semian

At least in my testing the port is a number, not a string.

documentation

# What Prevent a nil pointer dereference if attempting to read the name (or any other attribute delegated to bulkhead) of a protected resource without a bulkhead. # Why Since...

## Background MySQL and Redis supports static config, while NetHTTP and GRPC currently only Proc. e.g. https://github.com/Shopify/semian/blob/1d4b53be7819707f9c6eebc17bb9b50b46619271/lib/semian/mysql2.rb#L137-L140 https://github.com/Shopify/semian/blob/1d4b53be7819707f9c6eebc17bb9b50b46619271/lib/semian/net_http.rb#L67-L69 https://github.com/Shopify/semian/blob/1d4b53be7819707f9c6eebc17bb9b50b46619271/lib/semian/grpc.rb#L48-L50 ## Problem If pass a static config to NetHTTP and GRPC,...

help wanted
Semian

Here is the service https://codeball.ai/prediction/2e37978b-7b3f-43c0-932d-659a0cb24b07 could automate approve some PRs with Github actions: https://github.com/sturdy-dev/codeball-action

When using semian in puma and enable bulkhead, there will be some errors raised. How about disabling bulkhead by default to avoid this problem?

Semian

I skipped test `TestResource#test_acquire_timeout_override work` in https://github.com/Shopify/semian/pull/328 Need to update the code and find how it should work.

I am having trouble to understand how to use the Semian gem to implement a circuit breaker around a HTTP call. I went through the README multiple times. As far...

question

This PR fixes #27. ## What Moves the implementation of circuit breakers to shared memory so circuit errors can be shared between workers on the same host. ## Why Currently,...

enhancement

## What This PR attempts to address #244. It throttles the number of bulkhead tickets to 1 when the circuit opens, throttles to `success_threshold` when the circuit moves to `half_open`,...