Skip to content

Conversation

@jonmagic
Copy link
Collaborator

Why?

Previously, Flipper did not support seamless integration with Flipper Cloud for JavaScript users, forcing teams to rely on local adapters without the benefits of centralized management or cross-platform feature flag sync. Additionally, MemoryAdapter.disable cleared an entire feature instead of only the relevant gate value, resulting in unintended data loss when disabling boolean or number gates.

How?

  • Adds a new @flippercloud/flipper-cloud package featuring Flipper Cloud adapter with dual-write (local + cloud) and background sync via poller.
  • Provides a flexible FlipperCloud factory function supporting configuration for memory, Redis, or Sequelize local cache, with read-only and manual sync modes.
  • Updates MemoryAdapter.disable to clear only the specified gate value rather than the whole feature, preventing unwanted data deletion.

Includes documentation, tests, CI configs, and compatibility with the Ruby Flipper Cloud adapter.

Add `@flippercloud/flipper-cloud` package providing seamless
synchronization between local Flipper adapters and Flipper Cloud.
Includes dual-write for fast local reads and cloud writes, plus a
background poller to keep local cache up-to-date.

- New Cloud adapter with DualWrite pattern and poller sync
- `FlipperCloud` factory function supporting config options
- Supports memory, Redis, or Sequelize for local cache
- Read-only mode and manual sync methods
- Compatible with Ruby Flipper Cloud adapter
- Includes documentation, tests, CI, and configs

Also fixes `MemoryAdapter.disable` to clear only relevant gate value
instead of the entire feature, preventing unwanted data deletion when
disabling boolean or number gates.
@jonmagic jonmagic requested a review from jnunemaker December 10, 2025 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants