mirror of
https://github.com/mentos1386/zdravko.git
synced 2024-11-29 02:31:17 +00:00
feat(temporal): add temporal server
This commit is contained in:
parent
18d6c563a5
commit
e74322f296
7 changed files with 717 additions and 1579 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -2,6 +2,8 @@ dist/
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
zdravko.db
|
zdravko.db
|
||||||
|
temporal.db
|
||||||
|
temporal.db-journal
|
||||||
|
|
||||||
# Config
|
# Config
|
||||||
.env
|
.env
|
||||||
|
|
131
cmd/temporal/main.go
Normal file
131
cmd/temporal/main.go
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
"go.temporal.io/server/common/config"
|
||||||
|
"go.temporal.io/server/schema/sqlite"
|
||||||
|
"go.temporal.io/server/temporal"
|
||||||
|
|
||||||
|
t "code.tjo.space/mentos1386/zdravko/pkg/temporal"
|
||||||
|
|
||||||
|
"go.temporal.io/server/common/authorization"
|
||||||
|
tlog "go.temporal.io/server/common/log"
|
||||||
|
|
||||||
|
uiserver "github.com/temporalio/ui-server/v2/server"
|
||||||
|
uiconfig "github.com/temporalio/ui-server/v2/server/config"
|
||||||
|
uiserveroptions "github.com/temporalio/ui-server/v2/server/server_options"
|
||||||
|
)
|
||||||
|
|
||||||
|
func backendServer() {
|
||||||
|
cfg := t.NewConfig()
|
||||||
|
|
||||||
|
logger := tlog.NewZapLogger(tlog.BuildZapLogger(tlog.Config{
|
||||||
|
Stdout: true,
|
||||||
|
Level: "info",
|
||||||
|
OutputFile: "",
|
||||||
|
}))
|
||||||
|
|
||||||
|
sqlConfig := cfg.Persistence.DataStores[t.PersistenceStoreName].SQL
|
||||||
|
|
||||||
|
// Apply migrations if file does not already exist
|
||||||
|
if _, err := os.Stat(sqlConfig.DatabaseName); os.IsNotExist(err) {
|
||||||
|
// Check if any of the parent dirs are missing
|
||||||
|
dir := filepath.Dir(sqlConfig.DatabaseName)
|
||||||
|
if _, err := os.Stat(dir); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := sqlite.SetupSchema(sqlConfig); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pre-create namespaces
|
||||||
|
var namespaces []*sqlite.NamespaceConfig
|
||||||
|
for _, ns := range []string{"default"} {
|
||||||
|
namespaces = append(namespaces, sqlite.NewNamespaceConfig(cfg.ClusterMetadata.CurrentClusterName, ns, false))
|
||||||
|
}
|
||||||
|
if err := sqlite.CreateNamespaces(sqlConfig, namespaces...); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
authorizer, err := authorization.GetAuthorizerFromConfig(&cfg.Global.Authorization)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
claimMapper, err := authorization.GetClaimMapperFromConfig(&cfg.Global.Authorization, logger)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx := context.Background()
|
||||||
|
interruptChan := make(chan interface{}, 1)
|
||||||
|
go func() {
|
||||||
|
if doneChan := ctx.Done(); doneChan != nil {
|
||||||
|
s := <-doneChan
|
||||||
|
interruptChan <- s
|
||||||
|
} else {
|
||||||
|
s := <-temporal.InterruptCh()
|
||||||
|
interruptChan <- s
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
temporal, err := temporal.NewServer(
|
||||||
|
temporal.WithConfig(cfg),
|
||||||
|
temporal.ForServices(temporal.DefaultServices),
|
||||||
|
temporal.WithLogger(logger),
|
||||||
|
temporal.WithAuthorizer(authorizer),
|
||||||
|
temporal.WithClaimMapper(func(cfg *config.Config) authorization.ClaimMapper {
|
||||||
|
return claimMapper
|
||||||
|
}),
|
||||||
|
temporal.InterruptOn(interruptChan),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println("Starting temporal server")
|
||||||
|
if err := temporal.Start(); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
err = temporal.Stop()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func frontendServer() {
|
||||||
|
cfg := &uiconfig.Config{
|
||||||
|
Host: "0.0.0.0",
|
||||||
|
Port: 8223,
|
||||||
|
TemporalGRPCAddress: "localhost:7233",
|
||||||
|
EnableUI: true,
|
||||||
|
UIAssetPath: "",
|
||||||
|
Codec: uiconfig.Codec{
|
||||||
|
Endpoint: "",
|
||||||
|
},
|
||||||
|
CORS: uiconfig.CORS{
|
||||||
|
CookieInsecure: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
server := uiserver.NewServer(uiserveroptions.WithConfigProvider(cfg))
|
||||||
|
|
||||||
|
log.Println("Starting temporal ui server")
|
||||||
|
if err := server.Start(); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
go func() {
|
||||||
|
frontendServer()
|
||||||
|
}()
|
||||||
|
backendServer()
|
||||||
|
}
|
125
go.mod
125
go.mod
|
@ -6,58 +6,153 @@ require (
|
||||||
github.com/glebarez/sqlite v1.10.0
|
github.com/glebarez/sqlite v1.10.0
|
||||||
github.com/gorilla/mux v1.8.1
|
github.com/gorilla/mux v1.8.1
|
||||||
github.com/gorilla/sessions v1.2.2
|
github.com/gorilla/sessions v1.2.2
|
||||||
go.temporal.io/sdk v1.25.1
|
github.com/temporalio/ui-server/v2 v2.23.0
|
||||||
|
go.temporal.io/sdk v1.26.0-rc.2
|
||||||
|
go.temporal.io/server v1.22.4
|
||||||
golang.org/x/oauth2 v0.17.0
|
golang.org/x/oauth2 v0.17.0
|
||||||
gorm.io/gen v0.3.25
|
gorm.io/gen v0.3.25
|
||||||
gorm.io/gorm v1.25.7
|
gorm.io/gorm v1.25.7
|
||||||
gorm.io/plugin/dbresolver v1.5.0
|
gorm.io/plugin/dbresolver v1.5.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
replace go.temporal.io/server => github.com/temporalio/temporal v1.23.0-rc2.0.20240207154935-68882596be5d
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
cloud.google.com/go v0.112.0 // indirect
|
||||||
|
cloud.google.com/go/compute v1.23.3 // indirect
|
||||||
|
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
||||||
|
cloud.google.com/go/iam v1.1.5 // indirect
|
||||||
|
cloud.google.com/go/storage v1.36.0 // indirect
|
||||||
|
github.com/apache/thrift v0.18.1 // indirect
|
||||||
|
github.com/aws/aws-sdk-go v1.44.289 // indirect
|
||||||
|
github.com/benbjohnson/clock v1.3.5 // indirect
|
||||||
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
|
github.com/blang/semver/v4 v4.0.0 // indirect
|
||||||
|
github.com/cactus/go-statsd-client/statsd v0.0.0-20200423205355-cb0885a1018c // indirect
|
||||||
|
github.com/cactus/go-statsd-client/v5 v5.0.0 // indirect
|
||||||
|
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
|
||||||
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||||
|
github.com/coreos/go-oidc/v3 v3.1.0 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
|
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
|
github.com/emirpasic/gods v1.18.1 // indirect
|
||||||
github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a // indirect
|
github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a // indirect
|
||||||
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
github.com/glebarez/go-sqlite v1.22.0 // indirect
|
github.com/glebarez/go-sqlite v1.22.0 // indirect
|
||||||
|
github.com/go-logr/logr v1.3.0 // indirect
|
||||||
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-sql-driver/mysql v1.7.1 // indirect
|
github.com/go-sql-driver/mysql v1.7.1 // indirect
|
||||||
github.com/gogo/googleapis v1.4.1 // indirect
|
github.com/gocql/gocql v1.5.2 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/gogo/status v1.1.1 // indirect
|
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
|
||||||
github.com/golang/mock v1.6.0 // indirect
|
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
|
||||||
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
|
github.com/golang/mock v1.7.0-rc.1 // indirect
|
||||||
github.com/golang/protobuf v1.5.3 // indirect
|
github.com/golang/protobuf v1.5.3 // indirect
|
||||||
|
github.com/golang/snappy v0.0.4 // indirect
|
||||||
|
github.com/google/s2a-go v0.1.7 // indirect
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
|
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
||||||
|
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
|
||||||
github.com/gorilla/securecookie v1.1.2 // indirect
|
github.com/gorilla/securecookie v1.1.2 // indirect
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
|
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect
|
||||||
|
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
|
||||||
|
github.com/iancoleman/strcase v0.3.0 // indirect
|
||||||
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
||||||
|
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
|
||||||
|
github.com/jackc/pgx/v5 v5.4.3 // indirect
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
github.com/jinzhu/now v1.1.5 // indirect
|
github.com/jinzhu/now v1.1.5 // indirect
|
||||||
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||||
|
github.com/jmoiron/sqlx v1.3.4 // indirect
|
||||||
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||||
|
github.com/labstack/echo/v4 v4.9.1 // indirect
|
||||||
|
github.com/labstack/gommon v0.4.0 // indirect
|
||||||
|
github.com/lib/pq v1.10.9 // indirect
|
||||||
|
github.com/mailru/easyjson v0.7.7 // indirect
|
||||||
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
|
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||||
github.com/ncruces/go-strftime v0.1.9 // indirect
|
github.com/ncruces/go-strftime v0.1.9 // indirect
|
||||||
|
github.com/olivere/elastic/v7 v7.0.32 // indirect
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||||
github.com/pborman/uuid v1.2.1 // indirect
|
github.com/pborman/uuid v1.2.1 // indirect
|
||||||
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
|
github.com/prometheus/client_golang v1.16.0 // indirect
|
||||||
|
github.com/prometheus/client_model v0.4.0 // indirect
|
||||||
|
github.com/prometheus/common v0.44.0 // indirect
|
||||||
|
github.com/prometheus/procfs v0.11.0 // indirect
|
||||||
|
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||||
github.com/robfig/cron v1.2.0 // indirect
|
github.com/robfig/cron v1.2.0 // indirect
|
||||||
|
github.com/robfig/cron/v3 v3.0.1 // indirect
|
||||||
|
github.com/sirupsen/logrus v1.9.3 // indirect
|
||||||
github.com/stretchr/objx v0.5.0 // indirect
|
github.com/stretchr/objx v0.5.0 // indirect
|
||||||
github.com/stretchr/testify v1.8.4 // indirect
|
github.com/stretchr/testify v1.8.4 // indirect
|
||||||
go.temporal.io/api v1.24.0 // indirect
|
github.com/temporalio/ringpop-go v0.0.0-20230606200434-b5c079f412d3 // indirect
|
||||||
go.uber.org/atomic v1.9.0 // indirect
|
github.com/temporalio/sqlparser v0.0.0-20231115171017-f4060bcfa6cb // indirect
|
||||||
|
github.com/temporalio/tchannel-go v1.22.1-0.20231116015023-bd4fb7678499 // indirect
|
||||||
|
github.com/twmb/murmur3 v1.1.8 // indirect
|
||||||
|
github.com/uber-common/bark v1.3.0 // indirect
|
||||||
|
github.com/uber-go/tally/v4 v4.1.7 // indirect
|
||||||
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||||
|
github.com/valyala/fasttemplate v1.2.1 // indirect
|
||||||
|
go.opencensus.io v0.24.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect
|
||||||
|
go.opentelemetry.io/otel v1.21.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/metric v1.21.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/sdk v1.21.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/sdk/metric v1.19.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/trace v1.21.0 // indirect
|
||||||
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
||||||
|
go.temporal.io/api v1.27.0 // indirect
|
||||||
|
go.temporal.io/version v0.3.0 // indirect
|
||||||
|
go.uber.org/atomic v1.11.0 // indirect
|
||||||
|
go.uber.org/dig v1.17.0 // indirect
|
||||||
|
go.uber.org/fx v1.20.0 // indirect
|
||||||
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
|
golang.org/x/crypto v0.19.0 // indirect
|
||||||
|
golang.org/x/exp v0.0.0-20231127185646-65229373498e // indirect
|
||||||
golang.org/x/mod v0.15.0 // indirect
|
golang.org/x/mod v0.15.0 // indirect
|
||||||
golang.org/x/net v0.21.0 // indirect
|
golang.org/x/net v0.21.0 // indirect
|
||||||
|
golang.org/x/sync v0.6.0 // indirect
|
||||||
golang.org/x/sys v0.17.0 // indirect
|
golang.org/x/sys v0.17.0 // indirect
|
||||||
golang.org/x/text v0.14.0 // indirect
|
golang.org/x/text v0.14.0 // indirect
|
||||||
golang.org/x/time v0.3.0 // indirect
|
golang.org/x/time v0.5.0 // indirect
|
||||||
golang.org/x/tools v0.17.0 // indirect
|
golang.org/x/tools v0.17.0 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/api v0.155.0 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20230815205213-6bfd019c3878 // indirect
|
google.golang.org/appengine v1.6.8 // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20230815205213-6bfd019c3878 // indirect
|
google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect
|
||||||
google.golang.org/grpc v1.57.0 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe // indirect
|
||||||
google.golang.org/protobuf v1.31.0 // indirect
|
google.golang.org/grpc v1.61.0 // indirect
|
||||||
|
google.golang.org/protobuf v1.32.0 // indirect
|
||||||
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
|
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
|
||||||
|
gopkg.in/validator.v2 v2.0.1 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
gorm.io/datatypes v1.2.0 // indirect
|
gorm.io/datatypes v1.2.0 // indirect
|
||||||
gorm.io/driver/mysql v1.5.4 // indirect
|
gorm.io/driver/mysql v1.5.4 // indirect
|
||||||
gorm.io/hints v1.1.2 // indirect
|
gorm.io/hints v1.1.2 // indirect
|
||||||
|
lukechampine.com/uint128 v1.3.0 // indirect
|
||||||
|
modernc.org/cc/v3 v3.41.0 // indirect
|
||||||
|
modernc.org/ccgo/v3 v3.16.15 // indirect
|
||||||
modernc.org/libc v1.41.0 // indirect
|
modernc.org/libc v1.41.0 // indirect
|
||||||
modernc.org/mathutil v1.6.0 // indirect
|
modernc.org/mathutil v1.6.0 // indirect
|
||||||
modernc.org/memory v1.7.2 // indirect
|
modernc.org/memory v1.7.2 // indirect
|
||||||
|
modernc.org/opt v0.1.3 // indirect
|
||||||
modernc.org/sqlite v1.28.0 // indirect
|
modernc.org/sqlite v1.28.0 // indirect
|
||||||
|
modernc.org/strutil v1.2.0 // indirect
|
||||||
|
modernc.org/token v1.1.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
3
justfile
3
justfile
|
@ -11,7 +11,8 @@ run:
|
||||||
|
|
||||||
# Start temporal which is accassible at http://localhost:8233/
|
# Start temporal which is accassible at http://localhost:8233/
|
||||||
run-temporal:
|
run-temporal:
|
||||||
temporal server start-dev
|
go build -o dist/temporal cmd/temporal/main.go
|
||||||
|
./dist/temporal
|
||||||
|
|
||||||
# Start web server accessible at http://localhost:8080/
|
# Start web server accessible at http://localhost:8080/
|
||||||
run-server:
|
run-server:
|
||||||
|
|
123
pkg/temporal/config.go
Normal file
123
pkg/temporal/config.go
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
package temporal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"go.temporal.io/server/common/cluster"
|
||||||
|
"go.temporal.io/server/common/config"
|
||||||
|
"go.temporal.io/server/common/persistence/sql/sqlplugin/sqlite"
|
||||||
|
)
|
||||||
|
|
||||||
|
const PersistenceStoreName = "sqlite-default"
|
||||||
|
|
||||||
|
const BroadcastAddress = "127.0.0.1"
|
||||||
|
|
||||||
|
const FrontendHttpPort = 8233
|
||||||
|
const FrontendPort = 7233
|
||||||
|
const HistoryPort = 7234
|
||||||
|
const MatchingPort = 7235
|
||||||
|
const WorkerPort = 7236
|
||||||
|
|
||||||
|
func NewConfig() *config.Config {
|
||||||
|
return &config.Config{
|
||||||
|
Persistence: config.Persistence{
|
||||||
|
DataStores: map[string]config.DataStore{
|
||||||
|
PersistenceStoreName: {SQL: &config.SQL{
|
||||||
|
PluginName: sqlite.PluginName,
|
||||||
|
ConnectAttributes: map[string]string{
|
||||||
|
"mode": "rwc",
|
||||||
|
},
|
||||||
|
DatabaseName: "temporal.db",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
DefaultStore: PersistenceStoreName,
|
||||||
|
VisibilityStore: PersistenceStoreName,
|
||||||
|
NumHistoryShards: 1,
|
||||||
|
},
|
||||||
|
Global: config.Global{
|
||||||
|
Membership: config.Membership{
|
||||||
|
MaxJoinDuration: 30 * time.Second,
|
||||||
|
BroadcastAddress: BroadcastAddress,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Services: map[string]config.Service{
|
||||||
|
"frontend": {
|
||||||
|
RPC: config.RPC{
|
||||||
|
HTTPPort: FrontendHttpPort,
|
||||||
|
GRPCPort: FrontendPort,
|
||||||
|
MembershipPort: FrontendPort + 100,
|
||||||
|
BindOnLocalHost: false,
|
||||||
|
BindOnIP: "0.0.0.0",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
RPC: config.RPC{
|
||||||
|
GRPCPort: HistoryPort,
|
||||||
|
MembershipPort: HistoryPort + 100,
|
||||||
|
BindOnLocalHost: true,
|
||||||
|
BindOnIP: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"matching": {
|
||||||
|
RPC: config.RPC{
|
||||||
|
GRPCPort: MatchingPort,
|
||||||
|
MembershipPort: MatchingPort + 100,
|
||||||
|
BindOnLocalHost: true,
|
||||||
|
BindOnIP: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"worker": {
|
||||||
|
RPC: config.RPC{
|
||||||
|
GRPCPort: WorkerPort,
|
||||||
|
MembershipPort: WorkerPort + 100,
|
||||||
|
BindOnLocalHost: true,
|
||||||
|
BindOnIP: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ClusterMetadata: &cluster.Config{
|
||||||
|
EnableGlobalNamespace: false,
|
||||||
|
FailoverVersionIncrement: 10,
|
||||||
|
MasterClusterName: "active",
|
||||||
|
CurrentClusterName: "active",
|
||||||
|
ClusterInformation: map[string]cluster.ClusterInformation{
|
||||||
|
"active": {
|
||||||
|
Enabled: true,
|
||||||
|
InitialFailoverVersion: 1,
|
||||||
|
RPCAddress: fmt.Sprintf("%s:%d", BroadcastAddress, FrontendPort),
|
||||||
|
ClusterID: "todo",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
DCRedirectionPolicy: config.DCRedirectionPolicy{
|
||||||
|
Policy: "noop",
|
||||||
|
},
|
||||||
|
Archival: config.Archival{
|
||||||
|
History: config.HistoryArchival{
|
||||||
|
State: "disabled",
|
||||||
|
EnableRead: false,
|
||||||
|
Provider: nil,
|
||||||
|
},
|
||||||
|
Visibility: config.VisibilityArchival{
|
||||||
|
State: "disabled",
|
||||||
|
EnableRead: false,
|
||||||
|
Provider: nil,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
PublicClient: config.PublicClient{
|
||||||
|
HostPort: fmt.Sprintf("%s:%d", BroadcastAddress, FrontendPort),
|
||||||
|
},
|
||||||
|
NamespaceDefaults: config.NamespaceDefaults{
|
||||||
|
Archival: config.ArchivalNamespaceDefaults{
|
||||||
|
History: config.HistoryArchivalNamespaceDefaults{
|
||||||
|
State: "disabled",
|
||||||
|
},
|
||||||
|
Visibility: config.VisibilityArchivalNamespaceDefaults{
|
||||||
|
State: "disabled",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,6 +14,6 @@ processes:
|
||||||
availability:
|
availability:
|
||||||
restart: "always"
|
restart: "always"
|
||||||
temporal:
|
temporal:
|
||||||
command: just run-temporal
|
command: watchexec -r -e go,tmpl,css just run-temporal
|
||||||
availability:
|
availability:
|
||||||
restart: "always"
|
restart: "always"
|
||||||
|
|
Loading…
Reference in a new issue