By default, Split’s SDKs keep segment and feature flag data synchronized as users navigate across disparate systems, treatments, and conditions. However, some languages, do not have a native capability to keep a shared local cache of this data to properly serve treatments. For these cases, we built the Split Synchronizer service.
This tool coordinates the sending and receiving of data to a remote datastore that all of your processes can share to pull data for the evaluation of treatments. Out of the box, Split supports Redis as a remote datastore, and so the Split Synchronizer uses Redis as the cache for your SDKs when evaluating treatments. It also posts impression and event data and metrics generated by the SDKs back to Split’s servers, for exposure in the web console or sending to the data integration of your choice. The Synchronizer service runs as a standalone process in dedicated or shared servers and it does not affect the performance of your code, or Split’s SDKs.
The Split Proxy enables you to deploy a service in your own infrastructure that behaves like Split's servers and is used by both server-side and client-side SDKs to synchronize the flags without connecting to Split's actual backend directly.
This tool reduces connection latencies from the SDKs to the Split server to the SDKs transparently, and when a single connection is required from a private network to the outside for security reasons.
Split Synchronizer supports Go version 1.18 or higher.
Below is a simple example that describes the instantiation of Split Synchronizer:
- Install dependencies via
go build
||go mod vendor
- Then, execute
go run main.go -apikey "<YOUR_SDK_KEY>" -redis-host "<YOUR_REDIS_HOST>" -redis-port <YOUR_REDIS_PORT> -redis-prefix "<YOUR_PREFIX>"
- You can pull the Docker image from Docker Hub and run it into your container environment.
docker pull splitsoftware/split-synchronizer:latest
- Run the image:
docker run --rm --name split-synchronizer \
-p 3010:3010 \
-e SPLIT_SYNC_APIKEY=<YOUR_SDK_KEY> \
-e SPLIT_SYNC_REDIS_HOST=<YOUR_REDIS_HOST> \
-e SPLIT_SYNC_REDIS_PORT=<YOUR_REDIS_PORT> \
-e SPLIT_SYNC_REDIS_PREFIX=<YOUR_PREFIX> \
splitsoftware/split-synchronizer
Please refer to our official docs to learn about all the functionality provided by Split Synchronizer and this doc for Split Proxy.
The Split team monitors all issues submitted to this issue tracker. We encourage you to use this issue tracker to submit any bug reports, feedback, and feature enhancements. We'll do our best to respond in a timely manner.
Please see Contributors Guide to find all you need to submit a Pull Request (PR).
Licensed under the Apache License, Version 2.0. See: Apache License.
Split is the leading Feature Delivery Platform for engineering teams that want to confidently deploy features as fast as they can develop them. Split’s fine-grained management, real-time monitoring, and data-driven experimentation ensure that new features will improve the customer experience without breaking or degrading performance. Companies like Twilio, Salesforce, GoDaddy and WePay trust Split to power their feature delivery.
To learn more about Split, contact [email protected], or get started with feature flags for free at https://www.split.io/signup.
Split has built and maintains SDKs for:
- .NET Github Docs
- Android Github Docs
- Angular Github Docs
- GO Github Docs
- iOS Github Docs
- Java Github Docs
- JavaScript Github Docs
- JavaScript for Browser Github Docs
- Node Github Docs
- PHP Github Docs
- Python Github Docs
- React Github Docs
- React Native Github Docs
- Redux Github Docs
- Ruby Github Docs
For a comprehensive list of open source projects visit our Github page.
Learn more about Split:
Visit split.io/product for an overview of Split, or visit our documentation at help.split.io for more detailed information.