Prebuilt Infrastructure as a Service
client = Prefab::Client.new(api_key: "ACCT|API_KEY") @feature_flags = client.feature_flag_client # Create a flag that is on for 10% of traffic, the entire beta group and user:1 @feature_flags.upsert(Prefab::FeatureFlag.new(feature: "MyFeature", pct: 0.1, whitelisted: ["betas", "user:1"])) # Use Flags By Themselves puts @feature_flags.feature_is_on? "MyFeature" # returns yes 10 pct of the time # A single user should get the same result each time # with 10% probability user1123 will return yes, and if they do they always will puts @feature_flags.feature_is_on? "MyFeature", "user:1123" # Utilize the allowlist attributes to easily feature flag groups of people puts @feature_flags.feature_is_on_for? "MyFeature", "user:234", attributes: ["betas"]}"
Fast, efficient, bombproof and cost-effective rate limiting libraries that don't require any Redis/Memcached on your end.
Don't leave home without them. Feature flags enable Moving Fast and Breaking Less. Our flags can be: on, off, on for a percentage of your traffic and on for specific users or users that match specific criteria.
Want a reliable distributed config like Consul / Zookeeper that works out of the box and is cost-effective?
Only want to send the 'Welcome Email' once per person, but have some nasty race conditions that could lead to doing it twice? Put an eternal semaphore for 'welcome-email:email@example.com' and let us store that forever.
Scales to millions of individual limits
Paying your usage tracking service by the event? Do you really need to send an event for Bob _every_ time he clicks? How about only sending bob's unique events every 5 minutes? Let's decimate that bill.