A sample Go API implementation using clean architecture.
- Fiber – HTTP framework for Go
- godotenv –
.envfile loader - golang-migrate – Database migration tool
- validator – Struct and field validation
- zap – Structured logging
- confluent-kafka-go – Kafka client for Go
- golang-jwt/jwt – JWT authentication
Start all required services:
docker-compose up -dStop all services:
docker-compose downMake sure all containers are running before running database migration and starting the app.
Kafka UI is available at http://localhost:8080/
Apply migration:
migrate -path ./db/migrations -database "mysql://root:root@tcp(localhost:3306)/api-example" upRollback migration:
migrate -path ./db/migrations -database "mysql://root:root@tcp(localhost:3306)/api-example" downCreate new migration file:
migrate create -ext sql -dir db/migrations <migration_name>Copy .env from env.sample and adjust configuration values:
cp env.sample .envRun the API server:
go run cmd/api/main.goRun the Kafka consumer:
go run cmd/consumer/main.go