Sign inSign up

splitsoftware/split-synchronizer

By splitsoftware

•Updated 1 day ago

split-sync A background service to synchronize Split information with your SDK

Image
Developer tools
2

10M+

splitsoftware/split-synchronizer repository overview

⁠Split Synchronizer

Build Status

⁠Overview

By default, Split’s SDKs keep segment and split 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.

Twitter Follow

⁠Compatibility

Split Synchronizer supports Go version 1.13 or higher.

⁠Running the container
  1. Pull the Docker image and run it into your container environment.
docker pull splitsoftware/split-synchronizer:latest
  1. Run the image:
docker run --rm --name split-synchronizer \
 -p 3010:3010 \
 -e SPLIT_SYNC_APIKEY="your-sdk-api-key" \
 -e SPLIT_SYNC_REDIS_HOST=<your-redis-host> \
 -e SPLIT_SYNC_REDIS_PORT=<your_redis_port> \
 splitsoftware/split-synchronizer

Please refer to our official docs⁠ to learn about all the functionality provided by Split Synchronizer and the configuration options available for tailoring it to your current application setup.

⁠Environment VARS
   - SPLIT_SYNC_APIKEY                             Split Server-side SDK api-key
   - SPLIT_SYNC_LOG_LEVEL                          error;warning;info;debug;verbose
   - SPLIT_SYNC_LOG_OUTPUT                         Where to output logs (defaults to stdout)
   - SPLIT_SYNC_LOG_ROTATION_MAX_FILES             Max number of files to keep when rotating logs
   - SPLIT_SYNC_ADMIN_HOST                         Host where the admin server will listen
   - SPLIT_SYNC_ADMIN_PORT                         Admin port where incoming connections will be accepted
   - SPLIT_SYNC_ADMIN_USERNAME                     HTTP basic auth username for admin endpoints
   - SPLIT_SYNC_ADMIN_PASSWORD                     HTTP basic auth password for admin endpoints
   - SPLIT_SYNC_ADMIN_SECURE_HC                    Secure Healthcheck endpoints as well
   - SPLIT_SYNC_IMPRESSION_LISTENER_ENDPOINT       HTTP endpoint to forward impressions to
   - SPLIT_SYNC_IMPRESSION_LISTENER_QUEUE_SIZE     max number of impressions bulks to queue
   - SPLIT_SYNC_SLACK_WEBHOOK                      slack webhook to post log messages
   - SPLIT_SYNC_SLACK_CHANNEL                      slack channel to post log messages
   - SPLIT_SYNC_IP_ADDRESS_ENABLED                 Bundle host's ip address when sending data to split
   - SPLIT_SYNC_TIMEOUT_MS                         How long to wait until the synchronizer is ready
   - SPLIT_SYNC_SNAPSHOT                           Snapshot file to use as a starting point
   - SPLIT_SYNC_FORCE_FRESH_STARTUP                Wipe storage before starting the synchronizer
   - SPLIT_SYNC_STORAGE_TYPE                       Storage driver to use for caching splits/segments and user-generated data
   - SPLIT_SYNC_SPLIT_REFRESH_RATE_MS              How often to refresh splits
   - SPLIT_SYNC_SEGMENT_REFRESH_RATE_MS            How often to refresh segments
   - SPLIT_SYNC_IMPRESSIONS_MODE                   Whether to send all impressions for debugging
   - SPLIT_SYNC_STREAMING_ENABLED                  Enable/disable streaming functionality
   - SPLIT_SYNC_HTTP_TIMEOUT_MS                    Total http request timeout
   - SPLIT_SYNC_INTERNAL_METRICS_RATE_MS           How often to send internal metrics
   - SPLIT_SYNC_TELEMETRY_PUSH_RATE_MS             How often to flush sdk telemetry
   - SPLIT_SYNC_IMPRESSIONS_FETCH_SIZE             Impression fetch bulk size
   - SPLIT_SYNC_IMPRESSIONS_PROCESS_CONCURRENCY    #Threads for processing imps
   - SPLIT_SYNC_IMPRESSIONS_PROCESS_BATCH_SIZE     Size of imp processing batchs
   - SPLIT_SYNC_IMPRESSIONS_POST_CONCURRENCY       #concurrent imp post threads
   - SPLIT_SYNC_IMPRESSIONS_POST_SIZE              Max #impressions to send per POST
   - SPLIT_SYNC_IMPRESSIONS_ACCUM_WAIT_MS          Max ms to wait to close an impressions bulk
   - SPLIT_SYNC_EVENTS_FETCH_SIZE                  How many impressions to pop from storage at once
   - SPLIT_SYNC_EVENTS_PROCESS_CONCURRENCY         #Threads for processing imps
   - SPLIT_SYNC_EVENTS_PROCESS_BATCH_SIZE          Size of imp processing batchs
   - SPLIT_SYNC_EVENTS_POST_CONCURRENCY            #concurrent imp post threads
   - SPLIT_SYNC_EVENTS_POST_SIZE                   Max #impressions to send per POST
   - SPLIT_SYNC_EVENTS_ACCUM_WAIT_MS               Max ms to wait to close an events bulk
   - SPLIT_SYNC_REDIS_HOST                         Redis server hostname
   - SPLIT_SYNC_REDIS_PORT                         Redis Server port
   - SPLIT_SYNC_REDIS_DB                           Redis DB
   - SPLIT_SYNC_REDIS_PASS                         Redis password
   - SPLIT_SYNC_REDIS_PREFIX                       Redis key prefix
   - SPLIT_SYNC_REDIS_NETWORK                      Redis network protocol
   - SPLIT_SYNC_REDIS_MAX_RETRIES                  Redis connection max retries
   - SPLIT_SYNC_REDIS_DIAL_TIMEOUT                 Redis connection dial timeout
   - SPLIT_SYNC_REDIS_READ_TIMEOUT                 Redis connection read timeout
   - SPLIT_SYNC_REDIS_WRITE_TIMEOUT                Redis connection write timeout
   - SPLIT_SYNC_REDIS_POOL                         Redis connection pool size
   - SPLIT_SYNC_REDIS_SENTINEL_REPLICATION         Redis sentinel replication enabled
   - SPLIT_SYNC_REDIS_SENTINEL_ADDRESSES           List of redis sentinels
   - SPLIT_SYNC_REDIS_SENTINEL_MASTER              Name of master
   - SPLIT_SYNC_REDIS_CLUSTER_MODE                 Redis cluster enabled
   - SPLIT_SYNC_REDIS_CLUSTER_NODES                List of redis cluster nodes
   - SPLIT_SYNC_REDIS_CLUSTER_KEY_HASHTAG          keyHashTag for redis cluster
   - SPLIT_SYNC_REDIS_TLS                          Use SSL/TLS for connecting to redis
   - SPLIT_SYNC_REDIS_TLS_SERVER_NAME              Server name to use when validating a server public key
   - SPLIT_SYNC_REDIS_TLS_CA_CERTS                 Root CA certificates to connect to a redis server via SSL/TLS
   - SPLIT_SYNC_REDIS_TLS_SKIP_NAME_VALIDATION     Blindly accept server's public key
   - SPLIT_SYNC_REDIS_TLS_CLIENT_CERTIFICATE       Client certificate signed by a known CA
   - SPLIT_SYNC_REDIS_TLS_CLIENT_KEY               Client private key matching the certificate
   - SPLIT_SYNC_STORAGE_CHECK_RATE_MS              How often to check storage health

⁠Submitting issues

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.

⁠Contributing

Please see Contributors Guide⁠ to find all you need to submit a Pull Request (PR).

⁠License

Licensed under the Apache License, Version 2.0. See: Apache License⁠.

⁠About Split

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:

For a comprehensive list of opensource projects visit our Github page⁠.

Learn more about Split:

Visit split.io/product⁠ for an overview of Split, or visit our documentation at docs.split.io⁠ for more detailed information.

Tag summary

Content type

Image

Digest

sha256:18082c402…

Size

48.5 MB

Last updated

1 day ago

docker pull splitsoftware/split-synchronizer