Hi, thanks for building and maintaining this project — it’s really useful!
I’d like to suggest splitting the backend implementations (e.g., Redis, SQS, etc.) into their own repositories or at least separate Go modules. The main reasons are:
- Reduce unnecessary dependencies: Currently, when importing goqueue, projects pull in all backend dependencies even if they only need one. This can bloat go.mod and vendor files.
- Cleaner modularity: Having each backend in its own repo/module allows projects to explicitly choose which backend they depend on.
- Easier maintainability: Each backend can evolve at its own pace, with clearer separation of concerns.
A possible structure could be:
github.com/saravanasai/goqueue → core interfaces & abstractions
github.com/saravanasai/goqueue-redis → Redis backend
github.com/saravanasai/goqueue-sqs → SQS backend
(etc.)
This approach is fairly common in Go projects with pluggable backends and could make adoption easier for users.
Hi, thanks for building and maintaining this project — it’s really useful!
I’d like to suggest splitting the backend implementations (e.g., Redis, SQS, etc.) into their own repositories or at least separate Go modules. The main reasons are:
A possible structure could be:
github.com/saravanasai/goqueue→ core interfaces & abstractionsgithub.com/saravanasai/goqueue-redis→ Redis backendgithub.com/saravanasai/goqueue-sqs→ SQS backend(etc.)
This approach is fairly common in Go projects with pluggable backends and could make adoption easier for users.