Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
412 changes: 337 additions & 75 deletions online-feature-store/dev-toggle.sh β†’ dev-toggle-go.sh

Large diffs are not rendered by default.

16 changes: 5 additions & 11 deletions horizon/cmd/horizon/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"github.com/Meesho/BharatMLStack/horizon/internal/configs"
connectionConfigRouter "github.com/Meesho/BharatMLStack/horizon/internal/connectionconfig/route"
deployableRouter "github.com/Meesho/BharatMLStack/horizon/internal/deployable/router"
featureStoreRouter "github.com/Meesho/BharatMLStack/horizon/internal/feature_store/route"
inferflowConfig "github.com/Meesho/BharatMLStack/horizon/internal/inferflow/etcd"
inferflowRouter "github.com/Meesho/BharatMLStack/horizon/internal/inferflow/route"
"github.com/Meesho/BharatMLStack/horizon/internal/middleware"
Expand All @@ -24,9 +23,6 @@ import (
"github.com/Meesho/BharatMLStack/horizon/pkg/logger"
"github.com/Meesho/BharatMLStack/horizon/pkg/metric"
"github.com/Meesho/BharatMLStack/horizon/pkg/scheduler"
cacConfig "github.com/Meesho/go-core/config"
pricingclient "github.com/Meesho/price-aggregator-go/pricingfeatureretrieval/client"
"github.com/spf13/viper"
)

type AppConfig struct {
Expand All @@ -47,11 +43,11 @@ var (
)

func main() {
cacConfig.InitGlobalConfig(&appConfig)
configs.InitConfig(&appConfig)
horizonConfig.InitAll(appConfig.Configs)
infra.InitDBConnectors()
logger.Init()
metric.Init()
infra.InitDBConnectors(appConfig.Configs)
logger.Init(appConfig.Configs)
metric.Init(appConfig.Configs)
httpframework.Init(middleware.NewMiddleware().GetMiddleWares()...)
etcd.InitFromAppName(&ofsConfig.FeatureRegistry{}, appConfig.Configs.OnlineFeatureStoreAppName, appConfig.Configs)
etcd.InitFromAppName(&numerixConfig.NumerixConfigRegistery{}, appConfig.Configs.NumerixAppName, appConfig.Configs)
Expand All @@ -65,8 +61,6 @@ func main() {
predatorRouter.Init()
authRouter.Init()
ofsRouter.Init()
featureStoreRouter.Init(appConfig.Configs)
scheduler.Init(appConfig.Configs)
pricingclient.Init()
httpframework.Instance().Run(":" + strconv.Itoa(viper.GetInt("APP_PORT")))
httpframework.Instance().Run(":" + strconv.Itoa(appConfig.Configs.AppPort))
}
1 change: 1 addition & 0 deletions horizon/env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
MEESHO_ENABLED=false
APP_NAME=horizon
APP_PORT=8082
APP_LOG_LEVEL=INFO
Expand Down
7 changes: 1 addition & 6 deletions horizon/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,13 @@ toolchain go1.24.10
require (
cloud.google.com/go/storage v1.57.2
github.com/DataDog/datadog-go/v5 v5.6.0
github.com/Meesho/go-core v1.30.20
github.com/Meesho/helix-clients v0.8.1
github.com/Meesho/price-aggregator-go/pricingfeatureretrieval/client v0.0.12
github.com/deckarep/golang-set/v2 v2.8.0
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/gin-contrib/cors v1.7.3
github.com/gin-gonic/gin v1.10.1
github.com/go-zookeeper/zk v1.0.4
github.com/gocql/gocql v1.7.0
github.com/google/uuid v1.6.0
github.com/klauspost/compress v1.18.0
github.com/robfig/cron/v3 v3.0.1
github.com/rs/zerolog v1.34.0
github.com/spf13/viper v1.20.1
Expand All @@ -43,8 +39,8 @@ require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 // indirect
github.com/Meesho/go-core v1.30.20 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/bits-and-blooms/bitset v1.22.0 // indirect
github.com/bytedance/sonic v1.13.3 // indirect
github.com/bytedance/sonic/loader v0.3.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
Expand All @@ -55,7 +51,6 @@ require (
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
github.com/failsafe-go/failsafe-go v0.6.9 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.9 // indirect
Expand Down
21 changes: 0 additions & 21 deletions horizon/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -34,26 +34,20 @@ github.com/Meesho/go-core v1.30.20 h1:ijkKm9objd09ZMXGgLMVZpj8Q4+0rvMFY/2hSFFIoM
github.com/Meesho/go-core v1.30.20/go.mod h1:Ftn5QRPrCwy/c/m0Mp8zoX0dWcW4PZvtPwyi/qFL6lc=
github.com/Meesho/helix-clients v0.8.1 h1:oCmxw62WyXjqMcLacbzU41NQkMyeYGF1V1UQUrAszK8=
github.com/Meesho/helix-clients v0.8.1/go.mod h1:S1mVOB7X3Mp6TkoLHPkxba5892WQiA794oVw339yiRE=
github.com/Meesho/price-aggregator-go/pricingfeatureretrieval/client v0.0.12 h1:PmYPWRThLACd5mOGAA2O5qBc7/Ygb4IszXq9TJpdgYw=
github.com/Meesho/price-aggregator-go/pricingfeatureretrieval/client v0.0.12/go.mod h1:6fvt8B1VeZElMKNotGs11qkdNjWQoTzJrxPVw4g1pI4=
github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY=
github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k=
github.com/bits-and-blooms/bitset v1.22.0 h1:Tquv9S8+SGaS3EhyA+up3FXzmkhxPGjQQCkcs2uw7w4=
github.com/bits-and-blooms/bitset v1.22.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
github.com/bytedance/sonic v1.13.3 h1:MS8gmaH16Gtirygw7jV91pDCN33NyMrPbN7qiYhEsF0=
github.com/bytedance/sonic v1.13.3/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4=
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA=
github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8=
github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4=
Expand Down Expand Up @@ -81,8 +75,6 @@ github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4=
github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8=
github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU=
github.com/failsafe-go/failsafe-go v0.6.9 h1:7HWEzOlFOjNerxgWd8onWA2j/aEuqyAtuX6uWya/364=
github.com/failsafe-go/failsafe-go v0.6.9/go.mod h1:zb7xfp1/DJ7Mn4xJhVSZ9F2qmmMEGvYHxEOHYK5SIm0=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
Expand Down Expand Up @@ -116,8 +108,6 @@ github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=
github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-zookeeper/zk v1.0.4 h1:DPzxraQx7OrPyXq2phlGlNSIyWEsAox0RJmjTseMV6I=
github.com/go-zookeeper/zk v1.0.4/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw=
github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4=
github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
github.com/gocql/gocql v1.7.0 h1:O+7U7/1gSN7QTEAaMEsJc1Oq2QHXvCWoF3DFK9HDHus=
Expand All @@ -144,9 +134,6 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.7 h1:zrn2Ee/nWmHulBx5sAV
github.com/googleapis/enterprise-certificate-proxy v0.3.7/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA=
github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo=
github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 h1:X5VWvz21y3gzm9Nw/kaUeku/1+uBhcekkmy4IkffJww=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1/go.mod h1:Zanoh4+gvIgluNqcfMVTJueD4wSS5hT7zTt4Mrutd90=
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8=
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
Expand All @@ -157,8 +144,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
Expand Down Expand Up @@ -258,10 +243,6 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 h1:Hf9xI/X
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0/go.mod h1:NfchwuyNoMcZ5MLHwPrODwUF1HWCXWrL31s8gSAdIKY=
go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ=
go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 h1:Ahq7pZmv87yiyn3jeFz/LekZmPLLdKejuO3NcK9MssM=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0/go.mod h1:MJTqhM0im3mRLw1i8uGHnCvUEeS7VwRyxlLC78PA18M=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 h1:EtFWSnwW9hGObjkIdmlnWSydO+Qs8OwzfzXLUPg4xOc=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0/go.mod h1:QjUEoiGCPkvFZ/MjK6ZZfNOS6mfVEVKYE99dFhuN2LI=
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0 h1:rixTyDGXFxRy1xzhKrotaHy3/KXdPhlWARrCgK+eqUY=
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0/go.mod h1:dowW6UsM9MKbJq5JTz2AMVp3/5iW5I/TStsk8S+CfHw=
go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE=
Expand All @@ -272,8 +253,6 @@ go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFh
go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os=
go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
Expand Down
6 changes: 5 additions & 1 deletion horizon/internal/configs/app_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,11 @@ type Configs struct {
PricingFeatureRetrievalGrpcPlainText bool `mapstructure:"pricing_feature_retrieval_grpc_plain_text"`
PricingFeatureRetrievalTimeoutMs string `mapstructure:"pricing_feature_retrieval_timeout_in_ms"`

OnlineFeatureStoreAppName string `mapstructure:"online_feature_store_app_name"`
OnlineFeatureStoreAppName string `mapstructure:"online_feature_store_app_name"`
ScyllaActiveConfIds string `mapstructure:"scylla_active_conf_ids"`
RedisFailoverActiveConfIds string `mapstructure:"redis_failover_active_conf_ids"`

IsMeeshoEnabled bool `mapstructure:"is_meesho_enabled"`
}

type DynamicConfigs struct{}
35 changes: 35 additions & 0 deletions horizon/internal/configs/config_init_stub.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//go:build !meesho

package configs

import (
"log"

"github.com/Meesho/BharatMLStack/horizon/pkg/config"
"github.com/spf13/viper"
)

// ConfigHolder interface for app config
type ConfigHolder interface {
GetStaticConfig() interface{}
GetDynamicConfig() interface{}
}

// InitConfig initializes configuration based on MEESHO_ENABLED flag
func InitConfig(configHolder ConfigHolder) {
config.InitEnv()

staticConfig := configHolder.GetStaticConfig()
cfg, ok := staticConfig.(*Configs)
if !ok {
log.Fatal("Failed to cast static config to *Configs")
}

// Bind environment variables to config keys
// This maps APP_NAME (env) -> app_name (config key)
if err := viper.Unmarshal(cfg); err != nil {
log.Fatalf("Failed to unmarshal config from environment: %v", err)
}

log.Println("Configuration loaded from environment variables")
}
3 changes: 2 additions & 1 deletion horizon/internal/externalcall/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ func Init(config configs.Configs) {
InitRingmasterClient(config.RingmasterBaseUrl, config.RingmasterMiscSession, config.RingmasterAuthorization, config.RingmasterEnvironment, config.RingmasterApiKey)
// Initialize feature validation client with config-based URLs
InitFeatureValidationClient(config)
// Pricing client is initialized in main.go
// Initialize pricing client - provides both raw data types and RTP format
PricingClient.InitPricingClient()
}
153 changes: 0 additions & 153 deletions horizon/internal/externalcall/pricing_client.go

This file was deleted.

Loading