FAQ
Frequently asked questions
Short answers to the questions teams ask first.
Does every flag check call the server?
No. The Node SDK holds the environment’s snapshot in memory and evaluates locally. It polls for changes in the background, every 30 seconds by default.
What happens if the delivery service goes down?
An initialized client keeps evaluating from its last good snapshot. With a cache file, a restarted process can evaluate before delivery is reachable again.
How fast does a change reach my app?
On the SDK’s next poll (30 seconds by default, configurable). Delivery can also send SSE hints that trigger an immediate fetch, but they are off unless the deployment turns them on.
Will a user stay in the same rollout bucket?
Yes. Bucketing hashes a salt fixed per flag and environment with the user’s key, using a documented hash shared by the SDK and the server. Raising a percentage only adds users.
Can I evaluate flags in the browser?
Yes, with a client key. The browser posts a context to the delivery API and gets values only for flags marked client-enabled, never the rules. Server keys must stay on the server.
What happens when I revoke a key?
Delivery rejects it within the key cache lifetime (30 seconds by default). An SDK using it stops polling and keeps evaluating its last snapshot.
Can two people overwrite each other’s changes?
No. Configuration writes carry the version they expect, and a stale one is refused with a conflict.
Which languages have an SDK?
Node and TypeScript today (@rollkit/sdk). No other SDK exists yet; the delivery API is plain HTTP with an OpenAPI document.
Where does it run?
On your own infrastructure: the repository documents Vercel for the dashboard, CapRover for the API, delivery and PostgreSQL, and Docker Compose or Coolify for everything.
Still stuck? Contact us.