You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
⚙️ A comprehensive worker template demonstrating the github.com/samber/do dependency injection library.
This project showcases the full power of the samber/do dependency injection library in the context of a message-driven worker application. It implements a complete pub/sub worker with PostgreSQL integration and RabbitMQ messaging, demonstrating how do enables clean, modular, and testable worker architectures.
Perfect as a starting point for message-driven Go projects or as a learning resource for understanding dependency injection in worker applications.
git clone --depth 1 --branch main https://github.com/samber/do-template-worker.git your-project-name
cd your-project-name
docker compose up -d
make deps
make deps-tools
💡 Features
Type-safe dependency injection - Service registration and resolution using samber/do
Message-driven architecture - Complete pub/sub worker with RabbitMQ consumer and producer
Database integration - PostgreSQL with connection pooling and repository pattern
Modular architecture - Clean separation of concerns with dependency tree visualization
Configuration management - Environment-based configuration with dependency injection
Service lifecycle management - Health checks and graceful shutdown handling
Repository pattern - Data access layer with injected dependencies
Worker patterns - Business logic with proper dependency management
Application lifecycle - Health checks and graceful shutdown handling
Comprehensive error handling - Structured logging and error management
Production-ready - Ready to fork and customize for your next worker project
Extensive documentation - Inline comments explaining every do library feature
🚀 Contributing
# install deps
make deps
make deps-tools
# compile
make build
# build with hot-reload
make watch-run
# test with hot-reload
make watch-test