Skip to content

Commit daeb0ec

Browse files
committed
feat: Add context and setup router in main
1 parent 1e980d4 commit daeb0ec

File tree

4 files changed

+343
-1
lines changed

4 files changed

+343
-1
lines changed

cmd/app/main.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
package main
22

33
import (
4+
"context"
5+
46
"github.com/Furkan-Gulsen/Event-Driven-Architecture-with-Golang/config"
7+
"github.com/Furkan-Gulsen/Event-Driven-Architecture-with-Golang/internal"
58
"github.com/ThreeDotsLabs/watermill"
69
"github.com/ThreeDotsLabs/watermill/components/metrics"
710
"github.com/ThreeDotsLabs/watermill/message"
811
"github.com/ThreeDotsLabs/watermill/message/router/middleware"
912
)
1013

1114
func main() {
15+
// Create a new context and add a cancel function to it.
16+
ctx, cancel := context.WithCancel(context.Background())
17+
defer cancel()
1218

1319
// Create a new logger.
1420
logger := watermill.NewStdLogger(false, false)
@@ -27,4 +33,20 @@ func main() {
2733
metricsBuilder := metrics.NewPrometheusMetricsBuilder(prometheusRegistry, "", "")
2834
metricsBuilder.AddPrometheusRouterMetrics(router)
2935

36+
// Setup the router.
37+
r := &internal.Router{
38+
Router: router,
39+
Logger: logger,
40+
Config: c,
41+
}
42+
err = r.SetupRouter()
43+
if err != nil {
44+
panic(err)
45+
}
46+
47+
// Run the router.
48+
if err := router.Run(ctx); err != nil {
49+
panic(err)
50+
}
51+
3052
}

go.mod

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,55 @@ module github.com/Furkan-Gulsen/Event-Driven-Architecture-with-Golang
33
go 1.21.3
44

55
require (
6-
github.com/ThreeDotsLabs/watermill v1.3.5 // indirect
6+
github.com/ThreeDotsLabs/watermill v1.3.5
7+
github.com/ThreeDotsLabs/watermill-amqp v1.1.4
8+
github.com/ThreeDotsLabs/watermill-http v1.1.4
9+
github.com/ThreeDotsLabs/watermill-kafka/v2 v2.5.0
10+
)
11+
12+
require (
13+
github.com/Shopify/sarama v1.38.0 // indirect
714
github.com/beorn7/perks v1.0.1 // indirect
815
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
916
github.com/cespare/xxhash/v2 v2.2.0 // indirect
17+
github.com/davecgh/go-spew v1.1.1 // indirect
18+
github.com/eapache/go-resiliency v1.3.0 // indirect
19+
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
20+
github.com/eapache/queue v1.1.0 // indirect
21+
github.com/go-chi/chi v4.0.2+incompatible // indirect
1022
github.com/go-chi/chi/v5 v5.0.8 // indirect
23+
github.com/go-chi/render v1.0.1 // indirect
24+
github.com/go-logr/logr v1.2.3 // indirect
25+
github.com/go-logr/stdr v1.2.2 // indirect
1126
github.com/golang/protobuf v1.5.2 // indirect
27+
github.com/golang/snappy v0.0.4 // indirect
1228
github.com/google/uuid v1.3.1 // indirect
1329
github.com/hashicorp/errwrap v1.1.0 // indirect
1430
github.com/hashicorp/go-multierror v1.1.1 // indirect
31+
github.com/hashicorp/go-uuid v1.0.3 // indirect
32+
github.com/jcmturner/aescts/v2 v2.0.0 // indirect
33+
github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
34+
github.com/jcmturner/gofork v1.7.6 // indirect
35+
github.com/jcmturner/gokrb5/v8 v8.4.3 // indirect
36+
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
37+
github.com/klauspost/compress v1.15.11 // indirect
1538
github.com/lithammer/shortuuid/v3 v3.0.7 // indirect
1639
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
1740
github.com/oklog/ulid v1.3.1 // indirect
41+
github.com/pierrec/lz4/v4 v4.1.17 // indirect
1842
github.com/pkg/errors v0.9.1 // indirect
1943
github.com/prometheus/client_golang v1.14.0 // indirect
2044
github.com/prometheus/client_model v0.3.0 // indirect
2145
github.com/prometheus/common v0.39.0 // indirect
2246
github.com/prometheus/procfs v0.9.0 // indirect
47+
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
2348
github.com/sony/gobreaker v0.5.0 // indirect
49+
github.com/streadway/amqp v1.0.0 // indirect
50+
go.opentelemetry.io/contrib/instrumentation/github.com/Shopify/sarama/otelsarama v0.31.0 // indirect
51+
go.opentelemetry.io/otel v1.6.1 // indirect
52+
go.opentelemetry.io/otel/trace v1.6.1 // indirect
53+
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
54+
golang.org/x/net v0.4.0 // indirect
2455
golang.org/x/sys v0.4.0 // indirect
2556
google.golang.org/protobuf v1.28.1 // indirect
2657
)

0 commit comments

Comments
 (0)