Shopify / Shopify/semian

Semian equates semaphores not being available with fully disabling

Open
#718 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
1.5k
Forks
88
Avg merge
3d 19h
Merged PRs (30d)
5

Description

Semian has a mixed identity where it started solely as a bulkheading library (which requires sysv_semaphores) but then had circuit breakers added (which are per-process).

This ended up leading to some confusing segments in the codebase where we fully disable semians if sysv_semphores are not enabled.

We should go over the code and clean things up to distinguish clearly between Semian being disabled and semaphores being unavailable.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the code paths that fully disable Semians when sysv_semaphores are unavailable. Trace how bulkheads and per-process circuit breakers are handled, then distinguish Semian being disabled from semaphore availability throughout the affected code. Done means those two conditions are represented clearly and consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
distributed-systems
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.