Skip to content
23 changes: 7 additions & 16 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ go 1.26.0
require (
github.com/a-h/templ v0.3.1001
github.com/jackc/pgx/v5 v5.10.0
github.com/redis/go-redis/v9 v9.21.0
github.com/robfig/cron/v3 v3.0.1
github.com/testcontainers/testcontainers-go v0.44.0
github.com/testcontainers/testcontainers-go/modules/mongodb v0.44.0
Expand All @@ -14,12 +13,12 @@ require (
github.com/vmihailenco/msgpack/v5 v5.4.1
github.com/xraph/forge v1.10.0
github.com/xraph/forgeui v1.4.1
github.com/xraph/grove v1.6.3
github.com/xraph/grove/drivers/mongodriver v1.6.3
github.com/xraph/grove/drivers/pgdriver v1.6.3
github.com/xraph/grove/drivers/sqlitedriver v1.6.3
github.com/xraph/grove/kv v1.6.3
github.com/xraph/grove/kv/drivers/redisdriver v1.6.3
github.com/xraph/grove v1.7.0
github.com/xraph/grove/drivers/mongodriver v1.7.0
github.com/xraph/grove/drivers/pgdriver v1.7.0
github.com/xraph/grove/drivers/sqlitedriver v1.7.0
github.com/xraph/grove/kv v1.7.0
github.com/xraph/grove/kv/drivers/redisdriver v1.7.0
github.com/xraph/relay v1.6.3
github.com/xraph/trove v1.6.5
github.com/xraph/vessel v1.0.4
Expand Down Expand Up @@ -152,7 +151,6 @@ require (

require (
github.com/Oudwins/tailwind-merge-go v0.2.1 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/dunglas/httpsfv v1.1.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/go-openapi/swag/cmdutils v0.28.0 // indirect
Expand All @@ -167,7 +165,6 @@ require (
github.com/go-openapi/swag/typeutils v0.28.0 // indirect
github.com/go-openapi/swag/yamlutils v0.28.0 // indirect
github.com/gofrs/uuid/v5 v5.5.1 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
github.com/hashicorp/go-metrics v0.6.1 // indirect
github.com/klauspost/cpuid/v2 v2.4.0 // indirect
github.com/mdelapenya/tlscert v0.2.0 // indirect
Expand All @@ -178,22 +175,16 @@ require (
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.70.1 // indirect
github.com/prometheus/procfs v0.21.1 // indirect
github.com/redis/go-redis/v9 v9.21.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
github.com/xdg-go/scram v1.2.0 // indirect
github.com/xdg-go/stringprep v1.0.4 // indirect
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 // indirect
go.opentelemetry.io/otel/metric v1.44.0 // indirect
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect
google.golang.org/grpc v1.83.2 // indirect
modernc.org/libc v1.68.0 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.11.0 // indirect
Expand Down
46 changes: 12 additions & 34 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
Expand Down Expand Up @@ -148,8 +146,6 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
github.com/google/gnostic-models v0.7.1 h1:SisTfuFKJSKM5CPZkffwi6coztzzeYUhc3v4yxLWH8c=
Expand All @@ -163,8 +159,6 @@ github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17k
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c=
github.com/hashicorp/consul/api v1.34.4 h1:0U4YZ1Yp7K9WK9ex0gTJraFim26l02wCvsmf2ukalVE=
github.com/hashicorp/consul/api v1.34.4/go.mod h1:vz5gBNeycefpAAVNVbLBFObUu3isju6EK8UVZjXSTWc=
github.com/hashicorp/consul/sdk v0.18.1 h1:RDTeBvAeOveI2xI86sV+8WkaN7OkP4zz+cG3fOobDCM=
Expand Down Expand Up @@ -401,18 +395,18 @@ github.com/xraph/forgeui v1.4.1 h1:LHK1t/sZ+9zL+MNUZralO9/rc0f5UCa19dpbWTuRMNg=
github.com/xraph/forgeui v1.4.1/go.mod h1:rH/+wb1tt2pXSHotWAvoP+Lt846xlIjuwPDSpS5K5mw=
github.com/xraph/go-utils v1.2.2 h1:zwRV3jRWDSGTqoC4zoYqxyXhXOCEI8tp66GJIPhqf8Y=
github.com/xraph/go-utils v1.2.2/go.mod h1:Mckdi+nR0bI4bUESKSYajJq4tNSPsvZiuLRYJ0+qDQw=
github.com/xraph/grove v1.6.3 h1:QxU2SaBTTOp9tbO/DTNIrnh4pJ+T+MvuE4o6WH+ChBc=
github.com/xraph/grove v1.6.3/go.mod h1:7RviFsJh4CgHtp7DKkgUtRgIPrzdGmWhzu2nLlC2eWU=
github.com/xraph/grove/drivers/mongodriver v1.6.3 h1:KthiN7sPpl9qDkV3n6M0VdOg++budzXUiBqfP7Cx8p8=
github.com/xraph/grove/drivers/mongodriver v1.6.3/go.mod h1:E7ikkdRhiJm1lLCJ5mOVYa4Z6CNqhG/w5UN8A8jnnac=
github.com/xraph/grove/drivers/pgdriver v1.6.3 h1:AxzXAUTsuJQaHc2R1FciSu2OJeTeqMylP4nDu7xzgPQ=
github.com/xraph/grove/drivers/pgdriver v1.6.3/go.mod h1:tN3pXpElsaWtSfZxnyHDr4jZAAl8pJPQfp+pCx/3R5c=
github.com/xraph/grove/drivers/sqlitedriver v1.6.3 h1:bk62lIB6Eyiv8mmPrC8YmR6S9KYWB3gmCsffo5FfdEc=
github.com/xraph/grove/drivers/sqlitedriver v1.6.3/go.mod h1:qvoSnNilfVwyB7S7RIYkgZ8WCYGL8CHuegilc4PrZMc=
github.com/xraph/grove/kv v1.6.3 h1:YHYIhleVbvmRSi+j7WdH+zUOn0nL1flI3OKtjbmDJBQ=
github.com/xraph/grove/kv v1.6.3/go.mod h1:DWru5OjKvxjeUKixtsgbDGm4BWrMltB6IA3nLQUrsFw=
github.com/xraph/grove/kv/drivers/redisdriver v1.6.3 h1:32DoOGGZyltTDRcmVyagHwKu2Jw9R5bV7Dw0crgyhgU=
github.com/xraph/grove/kv/drivers/redisdriver v1.6.3/go.mod h1:sSoFDCR105ys80xwoZOQphsqAGNd6JClry2QNm7cwp4=
github.com/xraph/grove v1.7.0 h1:ueox0LC0oj2m6smd02iRFSMugVm/bmcAeGMStWhAqPA=
github.com/xraph/grove v1.7.0/go.mod h1:7RviFsJh4CgHtp7DKkgUtRgIPrzdGmWhzu2nLlC2eWU=
github.com/xraph/grove/drivers/mongodriver v1.7.0 h1:C+Sm3l0kOhhsxxo84J1DezDg1dVjlu+8IgUXCcDsOQg=
github.com/xraph/grove/drivers/mongodriver v1.7.0/go.mod h1:E7ikkdRhiJm1lLCJ5mOVYa4Z6CNqhG/w5UN8A8jnnac=
github.com/xraph/grove/drivers/pgdriver v1.7.0 h1:WhyM0G9t1HoBK+53rVu51u3/wPx60V7VjLb8DxObwQQ=
github.com/xraph/grove/drivers/pgdriver v1.7.0/go.mod h1:tN3pXpElsaWtSfZxnyHDr4jZAAl8pJPQfp+pCx/3R5c=
github.com/xraph/grove/drivers/sqlitedriver v1.7.0 h1:yMgGRwQjSdR7UylTJVoLS7XnUJ3oSk85kQBp4Lf+4k4=
github.com/xraph/grove/drivers/sqlitedriver v1.7.0/go.mod h1:qvoSnNilfVwyB7S7RIYkgZ8WCYGL8CHuegilc4PrZMc=
github.com/xraph/grove/kv v1.7.0 h1:wvZ+f7Ck6fhQbQv4asNdhY8Xy33QlKw7vXhtFLW5lQk=
github.com/xraph/grove/kv v1.7.0/go.mod h1:DWru5OjKvxjeUKixtsgbDGm4BWrMltB6IA3nLQUrsFw=
github.com/xraph/grove/kv/drivers/redisdriver v1.7.0 h1:w6kXiN16qHCOcYqLP7xiVAamqdsVJlIOJ3Xgi0eJBbg=
github.com/xraph/grove/kv/drivers/redisdriver v1.7.0/go.mod h1:sSoFDCR105ys80xwoZOQphsqAGNd6JClry2QNm7cwp4=
github.com/xraph/relay v1.6.3 h1:y/63Nk3SM02gEQe204v9bIoZbH+6lCM/JQurlXm1NvE=
github.com/xraph/relay v1.6.3/go.mod h1:Tx3wRpjFJTlIeQ6FkVCuZ/SQjykSzflsVxFSprAVpq4=
github.com/xraph/trove v1.6.5 h1:S7QZb9z2kcMijNkndAvqy5dFf9Y1Aqn/kEbJpAn/0O0=
Expand Down Expand Up @@ -442,12 +436,6 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI=
go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU=
go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc=
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 h1:88Y4s2C8oTui1LGM6bTWkw0ICGcOLCAI5l6zsD1j20k=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0/go.mod h1:Vl1/iaggsuRlrHf/hfPJPvVag77kKyvrLeD10kpMl+A=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 h1:3iZJKlCZufyRzPzlQhUIWVmfltrXuGyfjREgGP3UUjc=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0/go.mod h1:/G+nUPfhq2e+qiXMGxMwumDrP5jtzU+mWN7/sjT2rak=
go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc=
go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo=
go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58=
Expand All @@ -456,8 +444,6 @@ go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRk
go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA=
go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk=
go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE=
go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g=
go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
Expand Down Expand Up @@ -538,14 +524,6 @@ golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE=
golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8=
google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
google.golang.org/grpc v1.83.2 h1:EManeRomTObA0BU7I8vXgg/78uE5MJ9M8B39EX2WscU=
google.golang.org/grpc v1.83.2/go.mod h1:YPI1hK3kDked6iHvgX3tR0y+nX/qpMFKhPgFsokw1S8=
google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af h1:+5/Sw3GsDNlEmu7TfklWKPdQ0Ykja5VEmq2i817+jbI=
google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
Expand Down
10 changes: 10 additions & 0 deletions id/id.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ const (
PrefixEvent Prefix = "evt"
PrefixWorker Prefix = "wkr"
PrefixArtifact Prefix = "art"
PrefixUsage Prefix = "use"
)

// ID is the primary identifier type for all Dispatch entities.
Expand Down Expand Up @@ -140,6 +141,9 @@ type WorkerID = ID
// ArtifactID is a type-safe identifier for artifacts (prefix: "art").
type ArtifactID = ID

// UsageID is a type-safe identifier for usage records (prefix: "use").
type UsageID = ID

// AnyID is a type alias that accepts any valid prefix.
type AnyID = ID

Expand Down Expand Up @@ -174,6 +178,9 @@ func NewWorkerID() ID { return New(PrefixWorker) }
// NewArtifactID generates a new unique artifact ID.
func NewArtifactID() ID { return New(PrefixArtifact) }

// NewUsageID generates a new unique usage record ID.
func NewUsageID() ID { return New(PrefixUsage) }

// ──────────────────────────────────────────────────
// Convenience parsers
// ──────────────────────────────────────────────────
Expand Down Expand Up @@ -205,6 +212,9 @@ func ParseWorkerID(s string) (ID, error) { return ParseWithPrefix(s, PrefixWorke
// ParseArtifactID parses a string and validates the "art" prefix.
func ParseArtifactID(s string) (ID, error) { return ParseWithPrefix(s, PrefixArtifact) }

// ParseUsageID parses a string and validates the "use" prefix.
func ParseUsageID(s string) (ID, error) { return ParseWithPrefix(s, PrefixUsage) }

// ParseAny parses a string into an ID without type checking the prefix.
func ParseAny(s string) (ID, error) { return Parse(s) }

Expand Down
Loading
Loading