Skip to content

Add cop to restrict Sidekiq.redis and Gitlab::Redis::Queues

Sylvester Chin requested to merge schin1-rubocop-sidekiq-redis into master

Description of the proposal

This MR restricts the use of general usage Sidekiq.redis in application. The permitted use-cases are for migration and admin operations. Interactions with sidekiq should be done through Sidekiq APIs (migration/admin only) or .perform_{async/in} or bulk variants in non-migration/admin logic rather than directly sending commands to redis.

See gitlab-com/gl-infra/scalability#1939

New cop rule: Refrain from directly using Sidekiq.redis unless for migration and admin operations.

Check-list

  • Make sure this MR enables a static analysis check rule for new usage but ignores current offenses.
  • Mention this proposal in the relevant Slack channels (e.g. #development, #backend, #frontend).
  • If there is a choice to make between two potential styles, set up an emoji vote in the MR:
    • CHOICE_A: 🅰
    • CHOICE_B: 🅱
    • Vote for both choices, so they are visible to others.
  • The MR doesn't have significant objections, and is getting a majority of 👍 vs 👎 (remember that we don't need to reach a consensus).
  • (If applicable) One style is getting a majority of vote (compared to the other choice).
  • (If applicable) Update the MR with the chosen style.
  • Create a follow-up issue to fix the current offenses as a separate iteration: ISSUE_LINK
  • Follow the review process as usual.
  • Once approved and merged by a maintainer, mention it again:
    • In the relevant Slack channels (e.g. #development, #backend, #frontend).
    • (Optional depending on the impact of the change) In the Engineering Week in Review.
Edited by Sylvester Chin

Merge request reports