Flagsmith / Flagsmith/flagsmith-ruby-client

Rails apps with puma on cluster mode not catching up flag changes when local evaluation is enabled

Open
#62 3 comments 0 reactions 1 assignee Claimed by @zachaysan View on GitHub
Dominant language
Ruby
Stars
12
Forks
6
Avg merge
28m
Merged PRs (30d)
1

Description

### Context

When the following conditions are met, the local environment of the rails server does not refresh the flag states...the environment document request actually happens, tough.
- rails app
- puma (on cluster mode - even with 1 worker 1 thread)
- local evaluation enabled
- booting with `rails s` command

### Steps to reproduce
- Create a new rails app
- Configure puma with cluster mode (set a value above zero for `workers` on `config/puma.rb`)
- Create an initializer, defining the global variable, just like the documentation shows. Local evaluation must be enabled
- boot the server with `rails s`
- check if the flagsmith client is responding to flag state changes on the flagsmith dashboard between every environment document request

### Useful info
- Works normally with puma on single mode
- Puma worker and thread count does not matter to the issue
- On puma cluster mode, it seems like there is something wrong with the puma boot using the `bundle exec rails s` command, since running `bundle exec puma -t 1:1 -w 1:1` looks fine
- Worth mentioning that the local evaluation on the `rails c` console, the normal behavior occurs
- Tested on macOs Ventura 13.6.7 (M1 chip) and Ubuntu 22 (x64)

### Example project
https://github.com/Guilherme2112/flagsmith-rails-example

(basic instructions at README)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.