Last active
October 2, 2021 16:26
-
-
Save goncalossilva/d7cd97a082bbef64a0aa645051f62415 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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? | |
- 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