Skip to content

Kafka consumer and Mortar #42

Answered by talgendler
ttyerl asked this question in Q&A
Discussion options

You must be logged in to vote

Making your DynamoClient lazy is a great choice in my opinion, but you should return a pointer to a wrapper.
For example:

type dynamoWrapper struct {
	LazyDynamoClient *dynamo.LazyDynamoClient
}

Make sure your Dynamo constructor returns a pointer to this struct

func CreateDynamoWrapper(lc fx.Lifecycle) *dynamoWrapper {
	var wrapper *dynamoWrapper = &dynamoWrapper{}
	lc.Append(
		fx.Hook{
			OnStart: func(ctx context.Context) (err error) {
				wrapper.LazyDynamoClient, err = connectToDynamo(ctx)
				return err
			},
		},
	)
        return wrapper
}

Everywhere you inject *dynamoWrapper during the constructors phase the client is not initialized, but once you start your Fx Application all th…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@ttyerl
Comment options

Answer selected by talgendler
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants