From c6986c282894ababb26a3f9ee531d39824ae2c57 Mon Sep 17 00:00:00 2001 From: Phillip Michelsen Date: Mon, 28 Apr 2025 05:05:30 +0800 Subject: [PATCH] Project scaffold and general layout. Monorepo. --- .gitignore | 8 ++++++++ go.work | 7 +++++++ pkg/go.mod | 3 +++ pkg/pb/marketdata/marketdata.proto | 0 services/marketdata/cmd/main.go | 1 + services/marketdata/go.mod | 3 +++ services/marketdata/internal/config/config.go | 1 + .../marketdata/internal/identifier/identifier.go | 7 +++++++ services/marketdata/internal/manager/manager.go | 1 + .../internal/providers/binance/spot_fix.go | 1 + .../internal/providers/binance/spot_rest.go | 1 + .../internal/providers/binance/spot_websocket.go | 1 + services/marketdata/internal/providers/interface.go | 13 +++++++++++++ services/marketdata/internal/router/router.go | 1 + .../marketdata/internal/transport/grpc/server.go | 1 + services/orchestrator/cmd/main.go | 1 + services/orchestrator/go.mod | 3 +++ services/orchestrator/service.go | 1 + services/portfolio/cmd/main.go | 1 + services/portfolio/service.go | 1 + services/strategies/strategy1/cmd/main.go | 1 + services/strategies/strategy1/service.go | 1 + 22 files changed, 58 insertions(+) create mode 100644 .gitignore create mode 100644 go.work create mode 100644 pkg/go.mod create mode 100644 pkg/pb/marketdata/marketdata.proto create mode 100644 services/marketdata/cmd/main.go create mode 100644 services/marketdata/go.mod create mode 100644 services/marketdata/internal/config/config.go create mode 100644 services/marketdata/internal/identifier/identifier.go create mode 100644 services/marketdata/internal/manager/manager.go create mode 100644 services/marketdata/internal/providers/binance/spot_fix.go create mode 100644 services/marketdata/internal/providers/binance/spot_rest.go create mode 100644 services/marketdata/internal/providers/binance/spot_websocket.go create mode 100644 services/marketdata/internal/providers/interface.go create mode 100644 services/marketdata/internal/router/router.go create mode 100644 services/marketdata/internal/transport/grpc/server.go create mode 100644 services/orchestrator/cmd/main.go create mode 100644 services/orchestrator/go.mod create mode 100644 services/orchestrator/service.go create mode 100644 services/portfolio/cmd/main.go create mode 100644 services/portfolio/service.go create mode 100644 services/strategies/strategy1/cmd/main.go create mode 100644 services/strategies/strategy1/service.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f27a85 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +### Example user template template +### Example user template + +# IntelliJ project files +.idea +*.iml +out +gen diff --git a/go.work b/go.work new file mode 100644 index 0000000..7d9dc49 --- /dev/null +++ b/go.work @@ -0,0 +1,7 @@ +go 1.24.2 + +use ( + ./pkg + ./services/marketdata + ./services/orchestrator +) diff --git a/pkg/go.mod b/pkg/go.mod new file mode 100644 index 0000000..095bbe8 --- /dev/null +++ b/pkg/go.mod @@ -0,0 +1,3 @@ +module gitlab.michelsen.id/phillmichelsen/tessera/pkg + +go 1.24.2 diff --git a/pkg/pb/marketdata/marketdata.proto b/pkg/pb/marketdata/marketdata.proto new file mode 100644 index 0000000..e69de29 diff --git a/services/marketdata/cmd/main.go b/services/marketdata/cmd/main.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/services/marketdata/cmd/main.go @@ -0,0 +1 @@ +package cmd diff --git a/services/marketdata/go.mod b/services/marketdata/go.mod new file mode 100644 index 0000000..2a6fcd6 --- /dev/null +++ b/services/marketdata/go.mod @@ -0,0 +1,3 @@ +module gitlab.michelsen.id/phillmichelsen/tessera/services/marketdata + +go 1.24.2 diff --git a/services/marketdata/internal/config/config.go b/services/marketdata/internal/config/config.go new file mode 100644 index 0000000..d912156 --- /dev/null +++ b/services/marketdata/internal/config/config.go @@ -0,0 +1 @@ +package config diff --git a/services/marketdata/internal/identifier/identifier.go b/services/marketdata/internal/identifier/identifier.go new file mode 100644 index 0000000..a2171aa --- /dev/null +++ b/services/marketdata/internal/identifier/identifier.go @@ -0,0 +1,7 @@ +package identifier + +type Identifier struct { + Source string + Subject string + Type string +} diff --git a/services/marketdata/internal/manager/manager.go b/services/marketdata/internal/manager/manager.go new file mode 100644 index 0000000..5d04392 --- /dev/null +++ b/services/marketdata/internal/manager/manager.go @@ -0,0 +1 @@ +package manager diff --git a/services/marketdata/internal/providers/binance/spot_fix.go b/services/marketdata/internal/providers/binance/spot_fix.go new file mode 100644 index 0000000..f5c710e --- /dev/null +++ b/services/marketdata/internal/providers/binance/spot_fix.go @@ -0,0 +1 @@ +package binance diff --git a/services/marketdata/internal/providers/binance/spot_rest.go b/services/marketdata/internal/providers/binance/spot_rest.go new file mode 100644 index 0000000..f5c710e --- /dev/null +++ b/services/marketdata/internal/providers/binance/spot_rest.go @@ -0,0 +1 @@ +package binance diff --git a/services/marketdata/internal/providers/binance/spot_websocket.go b/services/marketdata/internal/providers/binance/spot_websocket.go new file mode 100644 index 0000000..f5c710e --- /dev/null +++ b/services/marketdata/internal/providers/binance/spot_websocket.go @@ -0,0 +1 @@ +package binance diff --git a/services/marketdata/internal/providers/interface.go b/services/marketdata/internal/providers/interface.go new file mode 100644 index 0000000..a5ee95f --- /dev/null +++ b/services/marketdata/internal/providers/interface.go @@ -0,0 +1,13 @@ +package providers + +import ( + "gitlab.michelsen.id/phillmichelsen/tessera/services/marketdata/internal/identifier" +) + +type Provider interface { + Start() error + Stop() error + Subscribe(identifier identifier.Identifier, channel chan<- any) error + Unsubscribe(identifier identifier.Identifier) + Fetch(identifier identifier.Identifier) (any, error) +} diff --git a/services/marketdata/internal/router/router.go b/services/marketdata/internal/router/router.go new file mode 100644 index 0000000..7ef135b --- /dev/null +++ b/services/marketdata/internal/router/router.go @@ -0,0 +1 @@ +package router diff --git a/services/marketdata/internal/transport/grpc/server.go b/services/marketdata/internal/transport/grpc/server.go new file mode 100644 index 0000000..21e034e --- /dev/null +++ b/services/marketdata/internal/transport/grpc/server.go @@ -0,0 +1 @@ +package grpc diff --git a/services/orchestrator/cmd/main.go b/services/orchestrator/cmd/main.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/services/orchestrator/cmd/main.go @@ -0,0 +1 @@ +package cmd diff --git a/services/orchestrator/go.mod b/services/orchestrator/go.mod new file mode 100644 index 0000000..dffbdf6 --- /dev/null +++ b/services/orchestrator/go.mod @@ -0,0 +1,3 @@ +module gitlab.michelsen.id/phillmichelsen/tessera/services/orchestrator + +go 1.24.2 diff --git a/services/orchestrator/service.go b/services/orchestrator/service.go new file mode 100644 index 0000000..fece8d8 --- /dev/null +++ b/services/orchestrator/service.go @@ -0,0 +1 @@ +package marketdata diff --git a/services/portfolio/cmd/main.go b/services/portfolio/cmd/main.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/services/portfolio/cmd/main.go @@ -0,0 +1 @@ +package cmd diff --git a/services/portfolio/service.go b/services/portfolio/service.go new file mode 100644 index 0000000..fece8d8 --- /dev/null +++ b/services/portfolio/service.go @@ -0,0 +1 @@ +package marketdata diff --git a/services/strategies/strategy1/cmd/main.go b/services/strategies/strategy1/cmd/main.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/services/strategies/strategy1/cmd/main.go @@ -0,0 +1 @@ +package cmd diff --git a/services/strategies/strategy1/service.go b/services/strategies/strategy1/service.go new file mode 100644 index 0000000..fece8d8 --- /dev/null +++ b/services/strategies/strategy1/service.go @@ -0,0 +1 @@ +package marketdata