Skip to content

Instantly share code, notes, and snippets.

@goncalossilva
Last active October 2, 2021 16:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save goncalossilva/d7cd97a082bbef64a0aa645051f62415 to your computer and use it in GitHub Desktop.
Save goncalossilva/d7cd97a082bbef64a0aa645051f62415 to your computer and use it in GitHub Desktop.
Goals
- Excellent performance
- Small library sizes
- Unbloated feature set
- OSS first and foremost
---
- On/off
- Percentage rollouts (X% true, Y% false)
- Consistent random seed
- Rulesets (e.g., regexp)
- Local flags
- Archived flags (final value + warning upon usage)
- Client config
- URL
- API key
- User configuration
- unique key (required) OR anonymous (uses device-specific key) // migration?
- email
- name
- language
- custom key/value
- Frontend SDKs (remote evaluation) + Backend SDKs (local evaluation)
- Instant flag update propagation (configurable, e.g., only polling, or no foreground updates)
- Client-side SDKs
- Server-sent events in foreground
- Polling in background
- Analytics on demand
- Server-side SDKs
- Analytics on demand
Rulesets in functions (excel style)
- Use values for args
- Use other flags for args
Docker setup for server
Later
- IP address matcher (see: https://github.com/silvercar/unleash-client-kotlin/blob/master/unleash/src/main/java/com/silvercar/unleash/util/IpAddressMatcher.kt)
- Expected lifetime (see: https://docs.getunleash.io/advanced/feature_toggle_types)
- Analytics (# of requests, some request data)
- Scheduled flags (date + time)
Maybe later?
- API versioning on the client
- Environments
- Features to group flaggs
- Private user attributes (used for evaluation, but discarded from analytics)
- Test mode that crashes if flags are not explicitly set
- Test annotation that re-runs tests with flag changes
- Integrations?
Android SDK (frontend) for inspiration:
- https://launchdarkly.github.io/android-client-sdk/com/launchdarkly/sdk/android/package-summary.html
- https://docs.getunleash.io/sdks/android_proxy_sdk
Python SDK (backend) for inspiration:
- https://launchdarkly-python-sdk.readthedocs.io/en/latest/
- https://docs.getunleash.io/sdks/python_sdk
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment