@@ -52,6 +52,7 @@ const (
5252type sdkStorages struct {
5353 splits storage.SplitStorageConsumer
5454 segments storage.SegmentStorageConsumer
55+ ruleBasedSegments storage.RuleBasedSegmentStorageConsumer
5556 impressionsConsumer storage.ImpressionStorageConsumer
5657 impressions storage.ImpressionStorageProducer
5758 events storage.EventStorageProducer
@@ -83,7 +84,7 @@ type SplitFactory struct {
8384func (f * SplitFactory ) Client () * SplitClient {
8485 return & SplitClient {
8586 logger : f .logger ,
86- evaluator : evaluator .NewEvaluator (f .storages .splits , f .storages .segments , engine .NewEngine (f .logger ), f .logger ),
87+ evaluator : evaluator .NewEvaluator (f .storages .splits , f .storages .segments , f . storages . ruleBasedSegments , engine .NewEngine (f .logger ), f .logger ),
8788 impressions : f .storages .impressions ,
8889 events : f .storages .events ,
8990 validator : inputValidation {
@@ -275,8 +276,8 @@ func setupInMemoryFactory(
275276 metadata dtos.Metadata ,
276277) (* SplitFactory , error ) {
277278 advanced , warnings := conf .NormalizeSDKConf (cfg .Advanced )
278- advanced .AuthSpecVersion = specs .FLAG_V1_1
279- advanced .FlagsSpecVersion = specs .FLAG_V1_1
279+ advanced .AuthSpecVersion = specs .FLAG_V1_3
280+ advanced .FlagsSpecVersion = specs .FLAG_V1_3
280281 printWarnings (logger , warnings )
281282 flagSetsInvalid := int64 (len (cfg .Advanced .FlagSetsFilter ) - len (advanced .FlagSetsFilter ))
282283 if strings .TrimSpace (cfg .SplitSyncProxyURL ) != "" {
@@ -288,6 +289,7 @@ func setupInMemoryFactory(
288289 flagSetFilter := flagsets .NewFlagSetFilter (advanced .FlagSetsFilter )
289290 splitsStorage := mutexmap .NewMMSplitStorage (flagSetFilter )
290291 segmentsStorage := mutexmap .NewMMSegmentStorage ()
292+ ruleBasedSegmentStorage := mutexmap .NewRuleBasedSegmentsStorage ()
291293 telemetryStorage , err := inmemory .NewTelemetryStorage ()
292294 impressionsStorage := mutexqueue .NewMQImpressionsStorage (cfg .Advanced .ImpressionsQueueSize , inMememoryFullQueue , logger , telemetryStorage )
293295 eventsStorage := mutexqueue .NewMQEventsStorage (cfg .Advanced .EventsQueueSize , inMememoryFullQueue , logger , telemetryStorage )
@@ -299,7 +301,7 @@ func setupInMemoryFactory(
299301
300302 splitAPI := api .NewSplitAPI (apikey , advanced , logger , metadata )
301303 workers := synchronizer.Workers {
302- SplitUpdater : split .NewSplitUpdater (splitsStorage , splitAPI .SplitFetcher , logger , telemetryStorage , dummyHC , flagSetFilter ),
304+ SplitUpdater : split .NewSplitUpdater (splitsStorage , ruleBasedSegmentStorage , splitAPI .SplitFetcher , logger , telemetryStorage , dummyHC , flagSetFilter ),
303305 SegmentUpdater : segment .NewSegmentUpdater (splitsStorage , segmentsStorage , splitAPI .SegmentFetcher , logger , telemetryStorage , dummyHC ),
304306 EventRecorder : event .NewEventRecorderSingle (eventsStorage , splitAPI .EventRecorder , logger , metadata , telemetryStorage ),
305307 TelemetryRecorder : telemetry .NewTelemetrySynchronizer (telemetryStorage , splitAPI .TelemetryRecorder , splitsStorage , segmentsStorage , logger , metadata , telemetryStorage ),
@@ -317,6 +319,7 @@ func setupInMemoryFactory(
317319 impressionsConsumer : impressionsStorage ,
318320 impressions : impressionsStorage ,
319321 segments : segmentsStorage ,
322+ ruleBasedSegments : ruleBasedSegmentStorage ,
320323 initTelemetry : telemetryStorage ,
321324 evaluationTelemetry : telemetryStorage ,
322325 runtimeTelemetry : telemetryStorage ,
@@ -468,6 +471,7 @@ func setupLocalhostFactory(
468471 flagSetFilter := flagsets .NewFlagSetFilter (flagSets )
469472 splitStorage := mutexmap .NewMMSplitStorage (flagSetFilter )
470473 segmentStorage := mutexmap .NewMMSegmentStorage ()
474+ ruleBasedSegmentStorage := mutexmap .NewRuleBasedSegmentsStorage ()
471475 telemetryStorage , err := inmemory .NewTelemetryStorage ()
472476 if err != nil {
473477 return nil , err
@@ -492,7 +496,7 @@ func setupLocalhostFactory(
492496 }
493497
494498 syncManager , err := synchronizer .NewSynchronizerManager (
495- synchronizer .NewLocal (localConfig , splitAPI , splitStorage , segmentStorage , logger , telemetryStorage , dummyHC ),
499+ synchronizer .NewLocal (localConfig , splitAPI , splitStorage , segmentStorage , ruleBasedSegmentStorage , logger , telemetryStorage , dummyHC ),
496500 logger ,
497501 config.AdvancedConfig {StreamingEnabled : false },
498502 nil ,
@@ -518,6 +522,7 @@ func setupLocalhostFactory(
518522 splits : splitStorage ,
519523 impressions : mutexqueue .NewMQImpressionsStorage (cfg .Advanced .ImpressionsQueueSize , make (chan string , 1 ), logger , telemetryStorage ),
520524 events : mutexqueue .NewMQEventsStorage (cfg .Advanced .EventsQueueSize , make (chan string , 1 ), logger , telemetryStorage ),
525+ ruleBasedSegments : ruleBasedSegmentStorage ,
521526 segments : segmentStorage ,
522527 initTelemetry : telemetryStorage ,
523528 evaluationTelemetry : telemetryStorage ,
0 commit comments