Files
tasks/service/history/shard/context_factory.go
zeekay 40351cce6f rip: delete temporal fork — native ZAP-only tasksd
Goes from 135 MB binary with 1153 files importing go.temporal.io and 224
importing google.golang.org/grpc to a 10 MB native binary with ZERO of
either.

Deleted:
- tasks/, tasktests/, service/, chasm/, client/, api/, proto/, tools/
- cmd/tools/, components/, docker/
- schema/{cassandra,elasticsearch,mysql,postgresql,sqlite}/
- 40 tainted common/ subdirs + 7 top-level common files
- tests/testutils (no longer referenced after surviving deps drop common)

New cmd/tasksd (~100 lines) boots tasks.Embed (zap.Node) + http.Server.
New pkg/tasks/embed.go registers ZAP handlers for the SDK opcode surface
(0x0060-0x00A5). Workflow handlers return a 501 "not yet implemented"
envelope; native engine lands behind this contract.

Build:  go build ./cmd/tasksd → 10 MB
Vet:    go vet ./... → clean
Boot:   tasksd --zap-port 9999 --http :7243
Probes: /healthz, /v1/tasks/health → 200
UI:     /_/tasks/, / → 200 (embedded Vite bundle)
ZAP:    _tasks._tcp on :9999 (mDNS disabled; direct connect)

go.mod: tidy. No go.temporal.io. No google.golang.org/grpc.
2026-04-26 14:06:21 -07:00

116 lines
3.4 KiB
Go

package shard
import (
"go.temporal.io/server/chasm"
"go.temporal.io/server/client"
"go.temporal.io/server/common/archiver"
"go.temporal.io/server/common/clock"
"go.temporal.io/server/common/cluster"
"go.temporal.io/server/common/config"
"go.temporal.io/server/common/log"
"go.temporal.io/server/common/membership"
"go.temporal.io/server/common/metrics"
"go.temporal.io/server/common/namespace"
commonnexus "go.temporal.io/server/common/nexus"
"go.temporal.io/server/common/persistence"
"go.temporal.io/server/common/persistence/serialization"
"go.temporal.io/server/common/resource"
"go.temporal.io/server/common/searchattribute"
"go.temporal.io/server/service/history/configs"
"go.temporal.io/server/service/history/events"
"go.temporal.io/server/service/history/hsm"
historyi "go.temporal.io/server/service/history/interfaces"
"go.temporal.io/server/service/history/tasks"
"go.uber.org/fx"
)
//go:generate mockgen -package $GOPACKAGE -source $GOFILE -destination context_factory_mock.go
type (
CloseCallback func(historyi.ControllableContext)
ContextFactory interface {
CreateContext(shardID int32, closeCallback CloseCallback) (historyi.ControllableContext, error)
}
ContextFactoryParams struct {
fx.In
ArchivalMetadata archiver.ArchivalMetadata
ClientBean client.Bean
ClusterMetadata cluster.Metadata
Config *configs.Config
PersistenceConfig config.Persistence
EngineFactory EngineFactory
HistoryClient resource.HistoryClient
HistoryServiceResolver membership.ServiceResolver
HostInfoProvider membership.HostInfoProvider
Logger log.Logger
MetricsHandler metrics.Handler
NamespaceRegistry namespace.Registry
PayloadSerializer serialization.Serializer
PersistenceExecutionManager persistence.ExecutionManager
PersistenceShardManager persistence.ShardManager
SaMapperProvider searchattribute.MapperProvider
SaProvider searchattribute.Provider
ThrottledLogger log.ThrottledLogger
TimeSource clock.TimeSource
TaskCategoryRegistry tasks.TaskCategoryRegistry
EventsCache events.Cache
StateMachineRegistry *hsm.Registry
ChasmRegistry *chasm.Registry
EndpointRegistry commonnexus.EndpointRegistry
HandoverTrackerFactory HandoverTrackerFactory
}
contextFactoryImpl struct {
*ContextFactoryParams
}
)
func ContextFactoryProvider(params ContextFactoryParams) ContextFactory {
return &contextFactoryImpl{
ContextFactoryParams: &params,
}
}
func (c *contextFactoryImpl) CreateContext(
shardID int32,
closeCallback CloseCallback,
) (historyi.ControllableContext, error) {
shard, err := newContext(
shardID,
c.EngineFactory,
c.Config,
c.PersistenceConfig,
closeCallback,
c.Logger,
c.ThrottledLogger,
c.PersistenceExecutionManager,
c.PersistenceShardManager,
c.ClientBean,
c.HistoryClient,
c.MetricsHandler,
c.PayloadSerializer,
c.TimeSource,
c.NamespaceRegistry,
c.SaProvider,
c.SaMapperProvider,
c.ClusterMetadata,
c.ArchivalMetadata,
c.HostInfoProvider,
c.TaskCategoryRegistry,
c.EventsCache,
c.StateMachineRegistry,
c.ChasmRegistry,
c.EndpointRegistry,
c.HandoverTrackerFactory,
)
if err != nil {
return nil, err
}
shard.start()
return shard, nil
}